클래스 메소드의 주소를 찾으려면 dbghelp를 사용하려고합니다. 예 : DirectX 메서드 (DXGI) : dxgi! CDXGIFactory :: CreateSwapChainImpldbghelp를 사용하여 클래스 메소드의 심볼 주소 찾기
올바른 기호를 사용하고 _NT_SYMBOLS_PATH가 정의되었습니다. WinDBG에서 사용 은 다음 '의 X'명령이 제대로 작동 :
result = SymFromName(hprocess, L"dxgi!CDXGIFactory::CreateSwapChain", &symbol)
// result is false, GetLastError is 1168
:
0:000> x dxgi!CDXGIFactory::CreateSwapChain
6acb78ce dxgi!CDXGIFactory::CreateSwapChain (<no parameter info>)
6acdaf69 dxgi!CDXGIFactory::CreateSwapChain (<no parameter info>)
을하지만, SymFromName이 문자열을 사용하려고, 나는 오류 1168 (요소가 발견되지 않음)를 받고 있어요
'::'때문에 또는 동일한 기호에 대해 두 개의 주소가 있기 때문에 실패합니까 (어떻게 해결할 수 있습니까?).
시도한 전체 코드를 게시 할 수 있습니까? SymInitialize 등 등요? –
또한 가능한 경우 유니 코드 버전의 API를 사용하십시오. SymFromNameW (유니 코드) –
@Rahul, DetourFindFunction 메서드를 사용하고 있습니다. 소스는 ms-research 사이트 (출처 : module.cpp)에서 사용할 수 있습니다. SymInitialize가 DetourLoadImageHlp 내에서 호출되고 있습니다. SYMOPT_EXACT_SYMBOL 플래그가 의심 스럽습니다. 확실하지 않다. 고맙습니다. 승리 코어 초에 모두에게 안부. – Uri