问一个C++调用delphi编写的dll的问题。麻烦有空的看看。
delphi写了个dll其中一个方法:
function CAM_GrabImage(var devId:WideString;out imageData:Pointer;out imageSize:Int64; out imageWidth:Integer; out imageHeight:Integer) : integer ; cdecl ;
用delphi编写的程序调用的时候 imageData 正常返回了指针。
用C++调用的时候 imageData地址变成了null。其他参数都正常返回。
有人遇到并解决过类似情况吗?
下面是C调用部分代码,没有异常。就是imageData在debug时候看是null。传进去的时候还有初始地址,运行结束后变null。
typedef __cdecl int(*Dllfun)(char* devId, char* imageData,long* imageSize,int* imageWidth, int* imageHeight);
result = CAM_GrabImage(devId,imageData,imageSize,imageWidth,imageHeight);
delphi中
imageData:Pointer 我试过PChar
C中
Char* void*都试过。
结果一样,都是delphi编写的代码调用dll正常返回,C调用同一个dll,不正常。
请不吝赐教,感谢。