And the BORLNDMM.DLL must be deployed along with your DLL.

解决方案 »

  1.   

    使用BORLNDMM.DLL不方便,分发时要多一个DLL。改用PChar返回不算麻烦,DLL内部还是可以用string运算,只是在返回值时转换成PChar,这里有个问题就是内存分配的问题,即PChar的内存由DLL分配还是Caller分配。
      

  2.   

    在Dll中加入 uses ShareMem,那是自动管理DLL中的内存分配?
      

  3.   


    “DLL内部还是可以用string运算,只是在返回值时转换成PChar”这样,要是转换不好,仍然可能出问题的!或者使用widestring,尤其是在COM中,widestring是WINDOWS标准传递参量之一。(题外话,我自己却宁可使用Variant/OleVariant)
      

  4.   

    方法1:在Dll程序及调用该Dll的程序的项目文件的use子句的最前面加入ShareMem,发布程序时加上BORLNDMM.DLL;
    方法2:改用Pchar处理,自己调用GetMem,FreeMem等函数执行相关的内存管理工作;
    本人倾向于第2种方法,方便发布管理,也方便其它开发工具的调用;