Delphi 的内存共享机制要求用户在DLL文件中,如果使用了 string 类型传入DLL中的函数(或者过程)或者由DLL中的函数返回,那么在本单元和工程文件中都必须引用 ShareMem 单元,并且一定要保证 ShareMem 单元是本单元引用的第一个单元。例如:uses ShareMem,SysUtils, Classes;还有一个要求就是 BORLNDMM.DLL 这个文件也必须和你编写的DLL文件在一起。如果你不想这么麻烦,那就直接使用 PChar 类型,或者 ShortString 类型(最大长度255个字符)。如果你写的DLL不是在Delphi写的程序中调用,建议使用 PChar 类型,否则可能 ShortString 方便一些。同样的问题会出现在当您使用了动态数组时,解决的方法同上所述