IDE を使用せずに、コンソールから 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;
}
次に、 command でコンパイルし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
ます。次に、それを実行すると、標準ウィンドウ「プログラムが機能していません」で失敗します。セグメンテーション違反エラーが発生している可能性があります。
私は何を間違っていますか?