VC中的LPVOID类型在Delphi中应该对应什么类型?(40分)

  • 主题发起人 主题发起人 minihill1234
  • 开始时间 开始时间
M

minihill1234

Unregistered / Unconfirmed
GUEST, unregistred user!
这个是同时编写的api原型
BOOL WINAPI ReadCom(LPVOID sBuf,int *nLength)
下面是我在delphi中的声明
Function ReadCom(var ls_data:string
var Ncount:integer):boolean;
StdCall
External 'ES645_D.dll' Name 'ReadCom';
这个是我的实际引用
ReadCom(ls_bcd,li_return);
但在实际使用中总是无法得到ls_bcd的值,总是报错或无法访问!
究竟VC中的LPVOID类型在Delphi中应该对应什么类型?
 
pointer,pchar,pdword...都行
 
能不能详细的解释一下?具体的说明!
 
tt.t说的是一厢情愿:
C/C++里面的VOID指的是“无类型”数据,那么LPVOID就应该是“指向无类型数据的指针”。因此对应的Delphi数据类型应该是Pointer。虽然在所有类型的指针的存储长度都一样,但指向的数据类型不一样,通过指针取目标数据的结果也不一样。怎么能说“pointer,pchar,pdword...都行”?!--pchar指向的是字符数据,取目标以后的数据长度是一个字节;pdword指向的双字数据,取目标后的数据长度是4个字节,这两者能一样吗?所以既然在VC里面是LPVOID就应该对应DELPHI里面的Pointer,这样在混合语言编程时才不会出错。
 
接受答案了.
 
最好用POINTER,DWORD也可以
 
后退
顶部