5

まず第一に、私はこれをしばらく検索しましたが、私のケースに関連する回答が見つかりません。基本的に、私は Windows DLL (dnsapi.dll) の関数のアドレスを取得しようとしていますが、GetProcAddress は 0 を返しています。 dll. 同じ結果です。これは私が作成した 2 番目のプログラムのコードで、まだ動作しません。

#include <stdio.h>
#include <Windows.h>

int main() {
    HINSTANCE hLib = LoadLibrary(TEXT("user32.dll"));
    DWORD MsgBoxAddr = (DWORD)GetProcAddress(hLib, "MessageBox");

    printf("%ld", MsgBoxAddr);
    getchar();

    return 0;
}

ところで、GetLastError は 127 を返します。これは、GetProcAddress が機能しないときに返される最も一般的なエラーのようですが、何が問題なのかわかりません。これらのカップルだけでなく、多くの関数と DLL で試しました。

ありがとう。:)

編集:リンクされた記事は私の問題を解決しました。私が試した機能にはすべてユニコードとアニスのバージョン(wとa)がありました。完全な API 名を使用すると、問題が解決しました。その質問をリンクしてくれてありがとう。

ありがとうございました。

4

2 に答える 2