0

easyhook.h ヘッダー ファイルには、この関数宣言があります。

typedef void __stdcall REMOTE_ENTRY_POINT(REMOTE_ENTRY_INFO* InRemoteInfo);

easyhook の作成者は次のように述べています。

挿入されたネイティブ DLL には、「NativeInjectionEntryPoint」としてエクスポートされた REMOTE_ENTRY_POINT が必要です。そのエクスポートの署名については、easyhook.h を見てください。

私のdllがすでに次のようになっていると仮定します:

void __stdcall NativeInjectionEntryPoint(REMOTE_ENTRY_INFO* InRemoteInfo);

INT WINAPI DllMain(HMODULE hDLL, DWORD Reason, LPVOID Reserved){    
    switch(Reason){
    case DLL_PROCESS_ATTACH:
    case DLL_PROCESS_DETACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
        break;
    }
    return TRUE;
}

void _stdcall NativeInjectionEntryPoint(REMOTE_ENTRY_INFO* InRemoteInfo)(){

}

私のdllはどのように見えるはずですか?

フィードバックについては、質問に回答できるほど明確に述べたかどうかを知りたいです。私の最後のものは反対票を投じられましたが、その理由はわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

1

I know this question is old, but since I also had this problem and took me a while to fix, I'm answering it here.

First, as Harry Johnston said you should add __declspec(dllexport). Second, if your project is a C++ project, you should add extern "C" too. So, your method definition should look like this:

extern "C" __declspec(dllexport) void __stdcall NativeInjectionEntryPoint(REMOTE_ENTRY_INFO* InRemoteInfo)
{
    // ...
}
于 2015-05-29T17:47:17.630 に答える