2014-06-17 5 views
0

easyhook.h 헤더 파일에이 함수 선언이 있습니다.DLL에서 내 보낸 함수 서명

귀하의 주입 네이티브 DLL은 "NativeInjectionEntryPoint"로 내 보낸 REMOTE_ENTRY_POINT이 있어야합니다

typedef void __stdcall REMOTE_ENTRY_POINT(REMOTE_ENTRY_INFO* InRemoteInfo); 

easyhook 작성자는이 밝혔다. 해당 내보내기의 서명에 대해 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

당신이하지 않았다면, 당신은'사용하여 하나의 NativeInjectionEntryPoint() 함수를 수출해야합니다 __declspec (dllexport)'또는 정의 파일을 사용하여 . –

+0

해리, 나는 그 일이 의미하는 바를 알았 으면 좋겠다. 그래서 지금 어떻게해야 하는지를 찾고있다. 내가 올린 코드를 바꿀 수 있으면 좋겠습니까? – Lfod

답변

0

나는이 문제가 오래되었다는 것을 알고 있지만, 또한이 문제가 있었고 수정하기까지 잠시 시간이 걸렸으므로 여기서 대답하고 있습니다.

먼저 해리 존스턴이 말한대로 __declspec(dllexport)을 추가해야합니다. 둘째, 프로젝트가 C++ 프로젝트 인 경우 extern "C"도 추가해야합니다. 그래서, 당신의 방법 정의는 다음과 같아야합니다

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