使用模块定义文件可以是导出的函数名称不变,可以使用VC工具Depends查看。
第一步:建立动态链接库
“文件”-“新建项目”-“win32控制台应用程序”
在打开的对话框中选择”DLL" , 选中”空项目"
建立源文件:Dll1.cpp
int add(int a , int b)
{
return a + b ;
}
建立模块文件:Dll1.def
LIBRARY Dll2
EXPORTS
add
生成.dll文件和.lib文件
第二步:动态加载Dll
HMODULE hModule = LoadLibrary(TEXT("Dll2.dll")) ;
typedef int (*ADDPROC)(int a , int b) ;
ADDPROC Add = (ADDPROC)GetProcAddress(hModule , "add") ;
if(Add == NULL)
{
MessageBox(TEXT("add Fail")) ;
return ;
}
CString str ;
str.Format(TEXT("%d + %d = %d") , 5 , 3 , Add(5 , 3)) ;
MessageBox(str) ;
FreeLibrary(hModule) ;
注:在VS2012中添加.def文件方法:选中项目,点击右键,选择”添加“ - ”新建项“ -”代码“-”模块定义文件“