我想从控制台编译DLL,不使用任何IDE,并面临着下一个错误。编译与intel编译DLL的错误
我写了这个代码:
test_dll.cpp
#include <windows.h>
#define DLL_EI __declspec(dllexport)
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved){
return 1;
}
extern "C" int DLL_EI func (int a, int b){
return a + b;
}
然后用命令icl /LD test_dll.cpp
编译。我试图从另一个程序中调用这个func
:
prog.cpp
int main(){
HMODULE hLib;
hLib = LoadLibrary("test_dll.dll");
double (*pFunction)(int a, int b);
(FARPROC &)pFunction = GetProcAddress(hLib, "Function");
printf("begin\n");
Rss = pFunction(1, 2);
}
与icl prog.cpp
编译。然后我运行它,并且它失败,出现标准窗口“程序不能正常工作”。也许分段错误错误。
我在做什么错?
快速浏览GetProcAddress的应该与你的函数名,不是“功能”被调用。但在每次调用后添加一些适当的错误检测代码,以便您可以看到它失败的位置。 – PeterJ
你想使用错误处理和调试器 –