当前位置: 代码迷 >> PB >> PB 调用Delphi 编写的DLL,传入结构体时,全是乱码,怎么解决
  详细解决方案

PB 调用Delphi 编写的DLL,传入结构体时,全是乱码,怎么解决

热度:30   发布时间:2016-04-29 08:33:13.0
PB 调用Delphi 编写的DLL,传入结构体时,全是乱码,如何解决?
问题描述如题,情景很简单,就是PB调用DLL(delphi开发),传入结构体的话,就是乱码,但是Delphi做的Demo调用DLL就没有问题,我在网上查过,说是有可能在PB传入的结构体是局部变量,被回收了。我看了不是局部变量啊。小弟初遇难题,还请大虾们不吝赐教,^_^

------解决方案--------------------
你用的PB几?PB10以上申明dll函数注意后面加上;ansi
------解决方案--------------------
PB10以上的版本,声明API时如果有字符串的参数或者返回值时,需要在函数声明后加ansi

如:
FUNCTION long FindWindowA( ulong Winhandle, string wintitle ) Library "user32" alias for "FindWindowA;Ansi"

在pb10以前的版本,你可以这样声明

FUNCTION long FindWindowA( ulong Winhandle, string wintitle ) Library "user32" alias for "FindWindowA"

------解决方案--------------------
动态库没问题的话就应该是字符集的问题了 代码贴来看看
------解决方案--------------------
pb10 以上,字符集的问题,挺烦人的
------解决方案--------------------
类似的问题,但是如果不加:Ansi还好,加上以后运行就报错,这个……什么意思嘛
  相关解决方案