如果已装载的DLL中尚有线程正在运行,这时FreeLibrary则会引发访问违规,有没有好的解决方法(在无法退出线程情况下)

解决方案 »

  1.   

    用FreeLibraryAndExitThread()试试!
      

  2.   

    同步啊,尚有线程在运行时,就不FreeLibrary。
      

  3.   

    FreeLibraryAndExitThread可以解决!但如果需要线程运行得话!!使用同步把!
      

  4.   

    只要LoadLibrary()和FreeLibrary()配对,你爱怎么调谁管不着.
      

  5.   

    msdn中有一篇文章可能给你帮助 search 一下 DLL_PROCESS_DETACH
      

  6.   

    以上的方法我都试过了,这种错误一定会导致程序退出,在dllmain中做文章,也没见效, 谢
      

  7.   

    没有什么好方法,只有自已进行线程安全控制,如:在DLL中记录线程的状态,并提供接口进行状态访问,以此决定是否能释放该DLL,也可以在此基础增加功能以实现动态链库自释放,类似于COM机制,如感兴趣请联系.