을 얻는 방법을 내 자신의 코드의 모듈을 처리하는가?[중복]

StackOverflow https://stackoverflow.com/questions/119706

  •  02-07-2019
  •  | 
  •  

문제

가능한 중복:
나는 어떻게 얻을 HMODULE 에 대한 현재 실행되는 코드?

하려고 해요 자원을 찾을 수 있에서 내 자신의 모듈이 있습니다.이 모듈은 실행 파일의 사소한- GetModuleHandle(NULL) 의 핸들을 반환하는"주"모듈이 있습니다.

내 모듈,그러나,DLL 로드하는 다른 실행 가능합니다.그래서 GetModuleHandle(NULL) 이 반환됩니다 모듈을 처리하는 실행 파일을 분명히 내가 원하는 것이 아니다.

방법은 없을 확인하 모듈의 손잡이를 포함하는 모듈은 현재 실행 중 코드?DLL 을 사용하는 이름을 전화 GetModuleHandle() 처럼 보인다 해킹을 내게(그리고 쉽게 유지가능한 경우에는 코드는 질문에 이식하고 다른 DLL)가 있습니다.

도움이 되었습니까?

해결책

저장 처리 모듈을 멀리 할 때 그것은 당신에게 주어진 DllMain 한 다음 나중에 사용할 때 실제로 그것을해야합니다.많은 프레임워크(예를 들어,MFC)자동으로 이루어진다.

다른 팁

는 경우 DLL 으로 연결되어 MFC 다음 얻을 수있는 방법의 인스턴스 DLL 에서는 일부 기능을 불렀다:

void dll_function()
  {
  AFX_MANAGE_STATE(AfxGetStaticModuleState());
  HINSTANCE dll_instance = AfxGetInstanceHandle();
  }

앞에서 말했듯이 할 수 있는 저장하여 모듈을 처리에 전달되는 DllMain 기능입니다.

그러나 다른 이유는 저장해야 합니다.

예를 들어 당신이 결정하는 경우 바인딩하는 자원을 DLL 를 사용하는 리소스 링커해야 합니다 이 모듈은 핸들을 얻에서 이러한 리소스를 통해 LoadResource 기능 API 를 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top