调用别人的动态库,在用LoadLibrary加载动态库,用完后用FreeLibrary卸载动态库,不返回,请高手指点,谢谢!!

解决方案 »

  1.   


    type
      TAFun = function(): ShortString; stdcall;
    var
      AHandle: THandle;
      AFun: TAFun;
    begin
      AHandle:= LoadLibrary('yourdll.dll');
      AFun:= GetProcAddress(AHandle,'AFun');
      .....
      FreeLibrary(AHandle);
      

  2.   

    我就是这样用的,只不过我是c++ builder,但是单步到FreeLibrary就执行不下去了。
     HINSTANCE hins = ::LoadLibrary(strPath);GetProcAddress(hins ,"DBSetLogFile");
    ....
    ::FreeLibrary(hins)
    我是在Dll的基础上封装了一个类,在构造函数 LoadLibray,在析构函数里FreeLibrary的,有谁遇到过这种情况吗??
      

  3.   

    在用GetProcAddress前检查一下,究竟有没有LOAD成功.
      

  4.   

    谢谢楼上的回复,已经Load成功,检查过,关键是这种情况不是每次都发生,又不报错,就是程序没有办法退出,搞得头大了。
      

  5.   

    dll中有资源没有释放就会造成这种情况
      

  6.   


    是不是部分DLL中的资源没有释放掉,比如打开一个文件没有关闭之类的,所以 FreeLibary 不行。FreeLibary 后 GetLastError 看有没有什么提示?
      

  7.   

    你的FreeLibary在类的哪个函数中调用的?