我正在尝试从控制台编译 DLL,而不使用任何 IDE 并面临下一个错误。
我写了这段代码:
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;
}
然后用 command 编译icl /LD test_dll.cpp
。我试图func
从另一个程序中调用它:
程序.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
。然后我运行它,它失败并显示标准窗口"Program is not working"。可能存在分段错误错误。
我究竟做错了什么?