[英]C++ Loading a DLL
我将要开发一个应该与DLL一起分发的API。 由于无法直接测试用DLL编写的代码,因此必须将DLL加载到Test-Project中并在其中运行。
我使用的是Visual Studios2015。在其中创建了一个Testproject,在其中创建了DLL的项目:
解决方案树“ TestProject”
DLL工程
测试项目
我导出了一个虚拟函数来测试是否能够加载DLL:
#ifndef EXPORT
#define EXPORT __declspec(dllexport)
#endif
extern "C" {
EXPORT int dummy() {
return 5;
}
}
然后,在我的Testproject中,我尝试加载DLL,提取函数并运行它:
#include <windows.h>
#include <iostream>
using namespace std;
typedef int (__stdcall *dll_func)();
int main() {
HINSTANCE hGetProcIDDLL = LoadLibrary(TEXT("H:\\path\\to\\project\\Debug\\DLLProject\\DLLProject.dll"));
if (hGetProcIDDLL == NULL) {
cout << "DLL could not be loaded. " << GetLastError() << endl;
return;
}
dll_func f = (dll_func)GetProcAddress(hGetProcIDDLL, "create");
if (f == NULL) {
cout << "Factory function could not be resolved. " << GetLastError() << endl;
return;
}
cout << "Factory function returns: " << f() << endl;
}
我几乎复制了这个问题的所有内容。 不幸的是,当我运行Testproject时,控制台打印出:“无法加载DLL。4250”
在这一点上,我真的不知道该怎么办,因为这里描述的错误基本上什么也没说。 经过一点研究,我无法得到任何答案...希望您能帮助我:D
这很可能是由链接器设置引起的。 确保在链接器设置中指定“ / APPCONTAINER:NO”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.