我在程序中动态加载了一个DLL,加载的时候一切正常,运行也没有问题,但在程序退出卸载DLL的时候,程序去挂掉了,但是也没有弹出什么非法访问之类的警告,就是死在那里不能动了。我debug后发现是freelibrary时出了问题,但是却搞不清楚什么原因会导致这种情况发生。。请各位大虾给指点迷津,小弟先谢了

解决方案 »

  1.   

    肯定是DLL问题了,是自己写的就有好查!不是的话!就看是否是调用错误导致的!
      

  2.   

    DLLMAIN 的 
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
    这两个分支,是否有不合理的代码。
      

  3.   

    记住loadlibrary和freelibrary要配对。loadlibrary和freelibrary内部都是引用计数的。如果你调用不匹配,会破会引用计数。
    最终导致无法正确的被free。