Заголовочный файл 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?
Для обратной связи я хотел бы знать, достаточно ли четко сформулирован вопрос, чтобы на него можно было ответить. Мой последний был отклонен, и я не знаю почему.
Любая помощь будет оценена.
Я знаю, что этот вопрос старый, но так как у меня тоже была эта проблема, и мне потребовалось некоторое время, чтобы решить ее, я отвечаю на нее здесь.
Во-первых, как сказал Гарри Джонстон, вы должны добавить __declspec(dllexport)
,
Во-вторых, если ваш проект C ++, вы должны добавить extern "C"
тоже.
Итак, ваше определение метода должно выглядеть так:
extern "C" __declspec(dllexport) void __stdcall NativeInjectionEntryPoint(REMOTE_ENTRY_INFO* InRemoteInfo)
{
// ...
}