用别人的dll, dll比较复杂,dll中有很多全局变量,动态调用dll执行一次需要20分种左右,dll运行正常,有dll源代码。dll不怎么好改,代码有点复杂。
   现在遇到一个问题,我在对一个IP地址执行一操作时,调用此dll过程中,点停止按钮时中途马上结束(需要释放dll?)。 并且马上我又想对另一个IP执行同样的操作,也需要调用此dll。在第2次调用前,是不是需要先释放? 还有一个问题就是第2次调用dll时就得不到正常的信息了,怎么解决啊
   

解决方案 »

  1.   

    那就引式调入DLL,只调一次就行。
      

  2.   

    dll中有很多全局变量!! 不释放的话,下次调用会出错的!有什么好的解决办法。
      

  3.   

    dll中有很多全局变量!! 不释放的话,下次调用会出错的!有什么好的解决办法。
    ---------------------------------------------------------那就用一次,加载一次,然后释放一次了,用LoadLibrary 和 FreeLibrary
      

  4.   

    给DLL加个initial函数,初始化这些全局变量嘛
      

  5.   

    我的dll执行一次需要20分种,如果运行了3分钟后点停止按钮,就FreeLibrary的话,程序会异常
    退出。
    如果不FreeLibrary的话,马上又对另一ip执行操作调用此dll时又不正常,可能是dll全局变量不是初始值的原因了!!
      

  6.   

    我的dll执行一次需要20分种,如果运行了3分钟后点停止按钮,就FreeLibrary的话,程序会异常退出。
    如果不FreeLibrary的话,马上又对另一ip执行操作调用此dll时又不正常,可能是dll全局变量不是初始值的原因了!!如果出现你说的问题应该是因为
    1. dll 本身存在缺陷。 需要修改
    2. 可能是你没有按照约定去调用dll中的函数,例如当开始新的执行操作时需要调用一个固定的函数,dll 利用这个函数去初始化相关的变量(如果dll 没有提供这样的函数,应该就是dll的设计存在缺陷)