Delphi的代码:--------------------abcdefg.dll--------------------
JGT = PACKED RECORD //结构体
aaa : array [0..255] of BYTE;
bbb : array [0..255] of ZvZ;
ccc : Byte;
end;
ZvZ = ^JGT;var
alibb : array [0.. 16] of JGT;
alimm : Byte;
function HooSaa(d : ZvZ; t: Byte):Byte; stdcall;--------------------界面--------------------
function TiiKee(v: ZvZ): string;
begin
if (v^.Initialized = 1)
result := 'yes';
else
result := 'no';
end;procedure TMainForm.btn1Click(Sender: TObject);
var
i: integer;
item: TListItem;
begin
alimm := HooSaa(ZvZ(@alibb), 16);
for i := 0 to 11 do
begin
item.SubItems.Add(inttostr(alibb[i].FileCount));
item.SubItems.Add(TiiKee(@alibb[i]));
end;
end;用VS C#来做,请高手们出来呀,指针用内存传递的方式做么?如何用VS实现啊,求帮助!谢谢!
JGT = PACKED RECORD //结构体
aaa : array [0..255] of BYTE;
bbb : array [0..255] of ZvZ;
ccc : Byte;
end;
ZvZ = ^JGT;var
alibb : array [0.. 16] of JGT;
alimm : Byte;
function HooSaa(d : ZvZ; t: Byte):Byte; stdcall;--------------------界面--------------------
function TiiKee(v: ZvZ): string;
begin
if (v^.Initialized = 1)
result := 'yes';
else
result := 'no';
end;procedure TMainForm.btn1Click(Sender: TObject);
var
i: integer;
item: TListItem;
begin
alimm := HooSaa(ZvZ(@alibb), 16);
for i := 0 to 11 do
begin
item.SubItems.Add(inttostr(alibb[i].FileCount));
item.SubItems.Add(TiiKee(@alibb[i]));
end;
end;用VS C#来做,请高手们出来呀,指针用内存传递的方式做么?如何用VS实现啊,求帮助!谢谢!
{
[MarshalAs(UnmanagedType.ByValArray,SizeConst=256)] //这个加与不加,你都试试
public byte[] aaa;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] //这个加与不加,你都试试
public JGT[] bbb;
public byte ccc;
} [DllImport("abcdefg.dll")]
private static extern byte HooSaa(ref JGT d,byte t); JGT alibb = new JGT[17];
byte alimm;
private void button10_Click(object sender, EventArgs e)
{
foreach (JGT item in alibb)
{
item.aaa = new byte[256];
item.bbb = new JGT[256];
}
alimm = HooSaa(ref alibb, 16);
}