DLL导出函数初接触
虽然曾经不止因为一两个软件而去下载dll文件,放到system32文件夹下了。但,对于动态链接库和静态链接库的理解还是了了。这天忽然要用到DLL的相关知识,才发现自己懂的真是够表层的。
为了预防以后再次遭遇相同的尴尬,还是记录下~~
void __stdcall test() {
printf("This is test function in target module.\n");
}
target.dll 中的函数 需要被导出到测试程序
typedef void (*Func)(); //函数原型,创建函数指针的匹配声明
HMODULE hDLL=LoadLibrary("./target.dll"); //加载DLL
Func f = (Func)GetProcAddress(hDLL,MAKEINTRESOURCE(1)); //获取对应函数地址
target.def
;Dll名
;导出函数名 序号
LIBRARY target
EXPORTS
test @1
注意: def文件一定要导入到项目中编译出 dll和lib文件,测试程序中无需def文件
;为注释语句 不能与代码同行
LIBRARY 为识别关键字 必须在起始位置