江湖救急!!!!!有关c#调用vc写的dll的一个怪问题!!!!!!!!!!!!

weijl weijl 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在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程序的情况下,如何解决该问题。
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
weijl
C# 111,128 成员 642,537 内容