江湖救急!!!!!有关c#调用vc写的dll的一个怪问题!!!!!!!!!!!!
weijl 2003-07-20 06:28:27 我在vc.net中定义了一个dll.其中主要有二个结构和一个函数
struct BB
{
int x;
int y;
};
struct TEST
{
int num;
BB *ss;
};
int CErrDllApp::gg(TEST dd)
{
int j = 0;
for(int i = 0; i<dd.num;i++)
{
j = dd.ss[i].x;
j = dd.ss[i].y;
}
return j;
}
在c#中我要调用这个dll函数
struct BB
{
public int x;
public int y;
};
struct TEST
{
public int num;
public BB []ss;
};
[DllImport("ErrDll.dll")]
internal static extern int gg(TEST dd);
编译没问题,但是一调用便发生“追加情報 : 型 TEST的 ss 不能合并排列 : 这种类型的结构体成员不能合并排列”的出错警告。(大致意思如上,因为公司装的是日文vs.net)
我分析是vc中ss定义的是指针,在c中指针和数组有时可通用,但是c#中ss定义的是数组,可能发生不匹配的情况,我试过unsafe模式,还是不行。请问在不能改动vc程序的情况下,如何解决该问题。