jna 调用delphi写的dll如何传结构体的地址?
delphi中定义了一个函数,原型如下:
Function WriteICCardMessage(var CustomerInfo:PCustomerCard) : integer ; stdcall ;
begin
CustomerInfo.CardNo:='11111';
CustomerInfo.CardName:='wwww';
CustomerInfo.Money:=221;
CustomerInfo.sfType:=1;
Result:=1;
end;
写一个java程序调用该方法
public interface CallTestDll extends StdCallLibrary {
CallTestDll INSTANCE = (CallTestDll) Native.loadLibrary(
"Project2.dll", CallTestDll.class);
public int WriteICCardMessage(Object ppUser);
}
在main方法里面使用如下写法
CustomerCard customerCard=new CustomerCard();
PointerByReference ppUser=new PointerByReference(customerCard.getPointer());
customerCard.write();
System.out.println(callReadCard.WriteICCardMessage(ppUser));
System.out.println(customerCard.sfType);
无法获取在dll里面修改后的结构体的值.
请问各位高手,应该如何修改之处代码?