调用动态库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文件和头文件
程序中包含头文件就能用了
把你编写的 .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 // 函数名
);

浙公网安备 33010602011771号