我想從控制檯編譯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
你想使用錯誤處理和調試器 –