日期:2014-05-18  浏览次数:20847 次

C#调用c++ dll一问
c++   dll   原型:
struct   myStruct
{
      byte*   mymember;
}

int   myfunc(myStruct*   theStruct);

c#中调用此dll中的myfunc(),该如何在c#下定义结构体myStruct?unsafe下可以通过同样的定义指针解决,但是非unsafe下怎么搞定?

------解决方案--------------------
struct myStruct
{
byte mymember[];
}
------解决方案--------------------
帮顶
------解决方案--------------------
struct myStruct
{
byte[] mymember;
}
使用时
myStruct m = new myStruct();
m.mymember = new byte[255];

m.mymember = ...GetBytes

------解决方案--------------------
我感觉是.net下操作不是实际内存地址,跟C++不一样.引用动态dll经常有这个问题,有时总是勉强写对了,参数和其他数据结构的转换总是不太清楚.期待有高手好好解释一下这方面知识