ダイナミックDLLの使い方を学んでいます。DLLライブラリに2つの関数を作成しました。
DWORD fn1(VOID);
DWORD fn2(WCHAR*);
defファイルを使用してエクスポートしました
EXPORTS
fn1
fn2
fn1をロードして使用すると、すべて問題ありませんが、2番目は問題を引き起こしていますRun-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
ポインタは次のように定義されます。
typedef DWORD (WINAPI *fn1)(void);
typedef DWORD (WINAPI *fn2)( WCHAR* );
このようにロードされます:
fn1 first = NULL;
fn2 second = NULL;
first = (fn1) GetProcAddress( dll, "fn1" );
second = (fn2) GetProcAddress( dll, "fn2" );
何が問題を引き起こす可能性があるのか、私を助けてくれませんか?アプリケーションを「続行」すると正常に動作します...