调用动态库DLL

1.装载期间动态链接调用
         把你编写的 .dll .lib 和 .h 文件加入工程
         在本工程头文件中加入 #pragma comment(lib,"链接库名称,如myDllDemo")
         这样你的程序就可以像调用本地函数一样调用Dll中的函数。
2.运行期间动态链接
      在Dll工程中加入一个.Def文件 在其中加入要导出的函数名,
           如:   EXPORTS   myFounction
      回到本工程,调用方法:
             HMODULE hModule = ::LoadLiabrary("..\\..\\..\\myDllDemo.dll");
             if(hModule != NULL)
            {
                    PFNEXPORTFUNC mExportFunc =(PFNEXPORTFUNC)::GetProcAddress(hModule,"myFounction");
                    if(mExportFunc != NULL)
                   {
                           mExportFunc(参数);
                   }
                   ::FreeLibrary(hModule);
           }

 
分为两种:1是静态连接,把动态库的.lib文件加入到连接项中,导入头文件,.dll文件作为发布文件的一部分,就可以了;2是动态连接,使用LoadLibray动态载入动态库,定义使用的函数指针,然后使用那些动态库中的函数。
 
project/setting/link中加入**.lib
debug中加入dll
工程文件夹中加入.lib文件和头文件
程序中包含头文件就能用了
 

①loadlibrary(或mfc 的afxloadlibrary),装载动态库。

  ②getprocaddress,获取要引入的函数,将符号名或标识号转换为dll内部地址。

  ③freelibrary(或mfc的afxfreelibrary),释放动态链接库。

FARPROC GetProcAddress(   HMODULE hModule, // DLL模块句柄   

                                                LPCSTR lpProcName // 函数名  

                                      );

posted @ 2012-05-09 01:45  血马雄风  阅读(223)  评论(0)    收藏  举报