Сигнатура экспортированной функции DLL

Заголовочный файл easyhook.h имеет это объявление функции.

typedef void __stdcall REMOTE_ENTRY_POINT(REMOTE_ENTRY_INFO* InRemoteInfo);

Создатель easyhook заявил следующее:

Ваша внедренная собственная DLL должна иметь REMOTE_ENTRY_POINT, экспортированный как «NativeInjectionEntryPoint». Взгляните на 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?

Для обратной связи я хотел бы знать, достаточно ли четко сформулирован вопрос, чтобы на него можно было ответить. Мой последний был отклонен, и я не знаю почему.

Любая помощь будет оценена.

0

Решение

Я знаю, что этот вопрос старый, но так как у меня тоже была эта проблема, и мне потребовалось некоторое время, чтобы решить ее, я отвечаю на нее здесь.

Во-первых, как сказал Гарри Джонстон, вы должны добавить __declspec(dllexport),
Во-вторых, если ваш проект C ++, вы должны добавить extern "C" тоже.
Итак, ваше определение метода должно выглядеть так:

extern "C" __declspec(dllexport) void __stdcall NativeInjectionEntryPoint(REMOTE_ENTRY_INFO* InRemoteInfo)
{
// ...
}
0

Другие решения


По вопросам рекламы [email protected]