用delphi编写的dll中函数返回类型不能为string,否则其他程序调用时就会出错?请问如何解决? 传递参数时使用Pchar类型, Pchar(YourString) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参数传递时用Pchar类型,将string类型数据初始化,或者你可以将BORLNDMM.DLL文件复制到你的工程文件目录之下,并且在项目单元中包括了clause单元,则你可以在Dll中使用STRING,这些信息,你可以在每一个DLL工程刚开始时上面的注释部分读到的。 因为delphi的字符串,别的程序不认识。使用C字符串,即:pchar最好不要直接返回字符串,这样容易出问题。看看api函数,很少直接返回字符串的。你可以通过参数传递。 Delphi 的内存共享机制要求用户在DLL文件中,如果使用了 string 类型传入DLL中的函数(或者过程)或者由DLL中的函数返回,那么在本单元和工程文件中都必须引用 ShareMem 单元,并且一定要保证 ShareMem 单元是本单元引用的第一个单元。例如:uses ShareMem,SysUtils, Classes;还有一个要求就是 BORLNDMM.DLL 这个文件也必须和你编写的DLL文件在一起。如果你不想这么麻烦,那就直接使用 PChar 类型,或者 ShortString 类型(最大长度255个字符)。如果你写的DLL不是在Delphi写的程序中调用,建议使用 PChar 类型,否则可能 ShortString 方便一些。 很简单,就如上面说的,用PChar做返回类型,delphi中对两种类型的变换非常方便String to PChar: PChar(string);PChar to String: String(pchar); 如何判断某一个应用程序实例目前开启的文件,并使其MainForm提到萤幕的最上方﹖ 请帮我解释这个DELPHI程序语句? 程式间的调用. 100分求存储过程 关于Delphi在WindowXP SP2 下的问题 关于大数据量 有关SQL的结果,请大家进来一看 请问怎么用DELPHI写Win2000下的驱动程序? 怎样知道外部程序关闭了给程序发送一个消息? 我用copyMemory 总是出错,请教!! 新手该学C++builder 好,还是DELPHI好 delphi4下的FORM如何在DELPHI4下打开
使用C字符串,即:pchar
最好不要直接返回字符串,这样容易出问题。
看看api函数,很少直接返回字符串的。
你可以通过参数传递。
String to PChar: PChar(string);
PChar to String: String(pchar);