动态代用的DLL,使用也正常;但是在freelibrary就报内存地址错误;大家一定也遇到这样的问题,求求你们告诉我一下解决办法;我试过的方法:
1、SHAREMEM的方法。
2、stack frames的方法。
在往DLL里传参数的时候 我使用了 TStringList (不知道会不会有影响?)希望大家帮助我一下 我在线等
 QQ 292565545

解决方案 »

  1.   

    DLL接口不要使用类~
    不能使用VCL~只能应API所支持的标准类型.这就没问题的
      

  2.   

    TStringList 定义成PChar数组应该就没有问题
      

  3.   

    可以传递TStringList,SHAREMEM的方法就可以,我做过,
    你DLL和调用PROJECT都加了吗?可能是其他的原因,你好好检查
      

  4.   

    如果你释放DLL的时候,dll中创建的类没有释放的话,很容易出现报错的情况
      

  5.   

    同意,最容易犯的错误就是释放dll中还有未释放的动态创建的对象。另外:
    不要同时用接口变量和类变量引用同一个对象;
    在函数的参数和返回值中,不要使用任何vcl对象、string及相关的类,不能使用动态数组。
    总之,一切按win32api办事。