什么是DLL文件?
DLL(Dynamic Link Library,动态链接库)是Windows系统中用于共享代码和资源的文件格式。通过调用DLL,多个程序可以共用同一段代码,节省内存并便于维护。
调用DLL的基本步骤
- 使用
LoadLibrary加载DLL文件; - 使用
GetProcAddress获取函数地址; - 调用该函数;
- 使用
FreeLibrary释放DLL。
完整示例代码
以下是一个在C语言中动态调用DLL的示例:
#include <windows.h>
#include <stdio.h>
typedef int (*AddFunc)(int, int);
int main() {
HINSTANCE hDll = LoadLibrary(L"mylib.dll");
if (!hDll) {
printf("无法加载DLL文件!\n");
return 1;
}
AddFunc add = (AddFunc)GetProcAddress(hDll, "add");
if (!add) {
printf("无法找到函数 add!\n");
FreeLibrary(hDll);
return 1;
}
int result = add(3, 4);
printf("3 + 4 = %d\n", result);
FreeLibrary(hDll);
return 0;
}
注意事项
- 确保DLL文件与可执行程序在同一目录或系统PATH路径中;
- 函数导出需使用
__declspec(dllexport); - 注意字符编码问题(如使用宽字符 L"");
- 调用约定(calling convention)应保持一致(如
__stdcall或__cdecl)。