
delphi7调用c++写的DLL,调用的C++方法声明是int mf_ReadSnr(unsigned char *snr, int *type);
1个回答
展开全部
你传的参数类型是正确的。
原因1:参数需要分配内存,但是你没有。
原因2:参数值有问题。检查下函数返回值。
原因3:DLL本身写得有问题。可通过调试DLL分析原因。
原因1:参数需要分配内存,但是你没有。
原因2:参数值有问题。检查下函数返回值。
原因3:DLL本身写得有问题。可通过调试DLL分析原因。
追问
参数分配内存的,StrAlloc()分配Pchar
内存,New()分配Pinteger内存,函数的返回值是正确的,Pchar取到的值是乱码,DLL本身的话,用c++来调用的话,是可以的。还有可能是什么原因呢
追答
原因1:StrAlloc()是不是少分配了一个字节?最后一个字节要存储#0的。
原因2:字符串编码是否一致?别DLL用UTF-8,Delphi用MBCS。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询