c++中一个文件夹exe调用其他文件夹下的dll动态库,在exe中获取dll动态库所在位置
时间: 2024-05-04 19:22:34 浏览: 83
可以通过使用Windows API函数获取当前exe所在的路径,然后再从该路径中获取dll所在的路径。
下面是一个示例代码:
```cpp
#include <Windows.h>
#include <iostream>
int main()
{
// 获取当前exe所在的路径
char exePath[MAX_PATH];
GetModuleFileNameA(NULL, exePath, MAX_PATH);
// 从exe路径中获取dll所在的路径
char dllPath[MAX_PATH];
std::string exeDir(exePath);
exeDir = exeDir.substr(0, exeDir.find_last_of("\\/"));
std::string dllName("mydll.dll");
std::string dllFullPath = exeDir + "\\" + dllName;
strcpy_s(dllPath, dllFullPath.c_str());
// 加载并使用dll
HMODULE hDll = LoadLibraryA(dllPath);
if (hDll != NULL)
{
// 执行dll中的函数
// ...
// 卸载dll
FreeLibrary(hDll);
}
return 0;
}
```
其中,调用了 `GetModuleFileNameA` 函数获取当前exe所在的路径,然后通过字符串处理的方式获取dll所在的路径。最后,使用 `LoadLibraryA` 函数加载dll,并执行其中的函数。
阅读全文