我现在想用别人提供的组件,但我只有其HXX文件和DLL文件,没有LIB文件.我如何调用?

解决方案 »

  1.   

    如果是COM组件或者ActiveX控件,应该是注册后通过COM接口调用。
      

  2.   

         使用LoadLibrary函数,然后使用函数指针调用。
      

  3.   

    直接用.HXX文件生成 *.lib文件 就可以用了
      

  4.   

    "直接用.HXX文件生成 *.lib文件 就可以用了" 
    怎么生成呢LIB文件呢?
      

  5.   

    二三楼正解,这就是所谓的动态库的动态链接。
    你用LIB那种方法可能是动态库的静态链接。
    动态链接主要是用到函数指针,用起来并不难!
      

  6.   

    hDll =LoadLibrary("xx.dll") 和GetProcAddresstypedef BOOL(_stdcall *lpCloseDevice)(); 
        typedef BOOL (_stdcall *lpStopRun)();
    lpStopRun StopRun;
    lpCloseDevice CloseDevice;
        lpCloseDevice EndRead;
    if (hDll != NULL)
    {   
    StopRun = (lpStopRun)GetProcAddress(hDll, "StopRun");
    StopRun();

    CloseDevice =  (lpCloseDevice)GetProcAddress(hDll, "CloseDevice");
            EndRead =  (lpCloseDevice)GetProcAddress(hDll, "EndRead");
    EndRead();     
    CloseDevice(); 
    FreeLibrary(hDll);
    hDll=NULL;
    }
      

  7.   

    但GetProcAddress()总返回空值. 有没有可能该DLL的开发者(我不认识)不允许显式连接?
      

  8.   

    如果DLL开发者把DLL内某个函数导出了,那么GetProcAddress就一定会成功,查查看自己使用是否有错误!在调用该函数前应该声明函数为外部调用的!
      

  9.   


        声明函数为外部调用是dll开发者才能做的,你作为使用者是声明不了的。
      

  10.   

    双击dll,开vc装的工具是否能打开,如果打开了,就看看对外暴露的接口,
    用loadlibrary,加载就可以了