C++DLL调用主程序函数
时间: 2024-09-28 19:15:00 浏览: 42
在C++中,DLL (Dynamic Link Library) 调用主程序函数通常涉及到进程间通信,特别是当主程序作为独立的执行文件而DLL作为一个库存在的情况。以下是基本步骤:
1. **声明导出函数**:在DLL模块中,需要将想要从外部访问的函数声明为`__declspec(dllexport)`,这样在链接时就会被识别为对外提供。
```cpp
// DLLModule.cpp
extern "C" __declspec(dllexport) void CallFromMain(int param);
void CallFromMain(int param) {
// 函数体...
}
```
2. **主程序加载并调用**:在主程序中,需要包含相应的头文件,并使用`LoadLibrary`和`GetProcAddress`动态链接到DLL。
```cpp
// MainProgram.cpp
HMODULE hLib = LoadLibrary("path_to_DLL.dll");
if (hLib) {
typedef void (*FuncType)(int);
FuncType func = reinterpret_cast<FuncType>(GetProcAddress(hLib, "CallFromMain"));
if (func) {
func(42); // 参数传递给调用的函数
}
FreeLibrary(hLib);
} else {
// 处理加载失败
}
```
3. **错误处理**:务必处理可能出现的加载失败、找不到函数地址等错误情况,确保程序健壮。
阅读全文