exe から dll と通信しようとしていますが、dll に WINAPI を追加すると、GetProcAddress() の呼び出し中に NULL 値が返されます。
サンプルコードは次のとおりです。
EXE:
typedef int __declspec(dllexport) (WINAPI *fun)(int, int);
int main()
{
HINSTANCE hdll;
fun fp;
int a = 120;
int b = 80;
hdll = LoadLibrary(TEXT("baladll.dll"));
if (hdll != NULL)
{
fp = (fun)GetProcAddress((HMODULE)hdll, "add");
if (fp != NULL)
{
int c = fp(a, b);
printf("\n Add is : %d", c);;
}
}
return 0;
}
DLL:
ヘッダー ファイル:
int __declspec(dllexport) WINAPI add(int a, int b);
ソースファイル:
#include "dll.h"
int __declspec(dllexport) WINAPI add(int a, int b)
{
return a + b;
}
同じコードを WINAPI 呼び出しなしで実行すると、GetProcAddress() で NULL 以外の値が取得されます。
誰でもこれで私を助けることができますか?
ありがとう。