如何用C#调用VC创建的常规DLL函数?涉及到结构数组的传递!
VC中建立的函数
struct AAA
{
char aa[20];
char bb[20];
char cc[20];
}
输出函数 第一种
AAA * GetInfoA()
{
AAA * mm=new AAA[5];
strcpy(mm[0].aa,"12345")
//..................
return mm;
}
输出函数 第二种
void GetInfoB(AAA * mm)
{
strcpy(mm[0].aa,"12345")
//..................
}
//----------------------------------------------------
C#中
struct AAA
{
string aa;
string bb;
string cc;
}
[DllImport("xxx.dll", EntryPoint="GetInfoA")]
public static extern AAA [] GetInfoA();
[DllImport("xxx.dll", EntryPoint="GetInfoB")]
public static extern void GetInfoB(ref AAA [] mm);
问题:
一. GetInfoA的调用:
AAA [] hh= GetInfoA(); //出错,无法封送.
二. GetInfoB的调用:
AAA [] hh =new AA[5];
GetInfoB(ref hh); //也是出错
有没有办法解决这个问题,特别是自定义结构数组的输入输出?
遇到这样的问题,大侠们是怎么解决的?
);
问题点数:50、回复次数:8Top
1 楼yanzheng1(光原)回复于 2004-12-04 11:22:03 得分 0
dingTop
2 楼yanzheng1(光原)回复于 2004-12-04 11:44:27 得分 0
dingTop
3 楼zhouweihuaxf(bao xiong)回复于 2004-12-04 23:18:36 得分 30
这个问题我也不知道啊.Top
4 楼stepman(骆哈哈)回复于 2004-12-05 00:49:25 得分 0
upTop
5 楼yanzheng1(光原)回复于 2004-12-06 09:08:30 得分 0
dingTop
6 楼tear_pearl(tear_pearl)回复于 2004-12-06 10:28:33 得分 10
用intptr,
Marshal.PtrToStructure()
Marshal.StructureToPtr()
Top
7 楼missRainbowAgain(godness)回复于 2004-12-06 13:12:05 得分 10
up.....Top
8 楼yanzheng1(光原)回复于 2004-12-07 09:47:45 得分 0
dingTop




