用delphi动态调用dll,正确loadlibrary和freelibrary。
但是如果在dll中没有正确释放资源(如query),第二次调用同样的dll时会报AV错。
没次调用dll应该都是新的实例,怎么会和第一次的调用有关呢?请高手解答。

解决方案 »

  1.   

    与数据库等相关的一定要释放, 不然是有问题, 但其它类型的就不一定会出错, 但会丢失系统资源
    紧张. 如TStringList的类
      

  2.   

    不理解啊,有人可以解释一下delphi的dll调用机制、流程吗?
      

  3.   

    DLL有错误,你就是不用delphi,用VC也是一样的
    关键是少在DLL出错!
      

  4.   

    DLL有没有错这里不讨论,很多时候当程序足够复杂时,没有人能保证无错。
    我想知道的是Delphi的DLL调用逻辑,以尽可能的在DLL有问题是,调用DLL的主程序不受影响。有大侠来解释吗????????????????????
      

  5.   

    应该与DLL无关,不过同一进程多次调用一个DLL时,系统只装载一次。
    可能是delphi的数据引擎问题吧。可以去掉数据库功能后,再试试。