1

GetProcAddress に問題があります。関数を 1 つだけ含む単純な DLL を作成しました。

extern "C" LRESULT WINAPI Function(HWND Hwnd, UINT Message,
                                   WPARAM wParam, LPARAM lParam)
{
    Beep(1000, 1000);
    return CallNextHookEx(0, Message, wParam, lParam);
}

関数のアドレスを取得しようとすると、GetProcAddress が ErrorCode 127 (ERROR_PROC_NOT_FOUND) で失敗します。ただし、関数型として void を使用すると、完全に機能します。なぜこのような振る舞いをするのか、私にはよくわかりません。どんな提案でも大歓迎です!

ところで: DependencyWalker は、関数の名前が実際に「関数」であり、変更が適用されていないことを示しています。

4

2 に答える 2

2

__declspec(dllexport) の代わりに、エクスポートされた関数の名前を持つモジュール定義 (.def ファイル) を使用することをお勧めします。それらを管理する方がはるかに簡単です。

これも

#define DllExport extern "C" __declspec (dllexport)

エクスポートされた dll 関数名に C++ の「装飾」がない原因

于 2012-09-10T11:10:01.913 に答える