看看你的函数接口
//参数类型不能用string,用PChar或ShortString代替

解决方案 »

  1.   

    伴水兄:函数反回类型不能用string吗?我是这样写的:
    function  PasswordEncrypt(sPassword:string):ShortString; export;
    最后加了个stdcall
    function  PasswordEncrypt(sPassword:string):String; stdcall; export;
     是不是错了?我动态装载链接库时,在用FreeLibrary(myHandle)释放时报错;
      

  2.   

    伴水兄:函数反回类型不能用string吗?我是这样写的:
    function  PasswordEncrypt(sPassword:string):ShortString; export;
    最后加了个stdcall
    function  PasswordEncrypt(sPassword:string):String; stdcall; export;
     是不是错了?我动态装载链接库时,在用FreeLibrary(myHandle)释放时报错;
      

  3.   

    function PasswordEncrypt(sPassword: ShortString): ShortString; stdcall; 
      

  4.   

    我以前做过的一个加密系统也出现过这种问题当时为了平台无关的考虑,用标准C写的加密函数(MD5+3-DES),在Windows平台下用VC++编译,在AIX系统下用IBM C Complier编译器,接口有输出参数,是 char * ciper 这种形式的,所以调用的时候就用了pchar型的变量,用getmem动态获得内存,但没有释放,结果就出现了你说的那种情况,要用freemem释放掉不用的内存资源所以我觉得你还是用pchar类型的变量做接口(以后用别的语言也可以调用啊),然后动态分配内存,再释放内存。你的dll用静态加载看看,应该不会报错的吧