2017-12-12 29 views
0

내가 ICLRRuntimeInfo 인스턴스가 null지고있어 내가 EnumerateInstalledRuntimes로 시도 C++얻기 ICLRRuntimeInfo 인스턴스가 null C++

DWORD pid = 2076; 
HRESULT hr; 
HANDLE hProcess; 
ICLRMetaHost *pMetaHost = NULL; 
IEnumUnknown *ppEnumerator = NULL; 
ICLRRuntimeInfo *CLRRuntimeInfo = NULL; 
ULONG pFetched = 0; 
DWORD versionLength; 

hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); 

if (hProcess == NULL) { 
    printf("process unable to open"); 
    return 0; 
} 

hr = CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost,*)&pMetaHost); 
pMetaHost->EnumerateLoadedRuntimes(hProcess, &ppEnumerator); 

if (ppEnumerator == 0) { 
    return 0; 
} 

hr = ppEnumerator->Next(1, (IUnknown **)&CLRRuntimeInfo, &pFetched); 
if (hr == S_FALSE) { 
    printError(TEXT("CLRRuntimeInfo")); 
    return 0; 
} 

가지고 설치된 모든 런타임 pMetaHost-> EnumerateInstalledRuntimes (& ppEnumerator) Windows 오류 내가 가진 : 오류 18 실패했습니다 (이 있습니다 더 이상 파일 없음) 프로젝트 속성에서

답변

0

-> VC++ 디렉터리 -> 라이브러리 Dirctories-> $ (NETFXKitsDir) lib 디렉토리 \ 음 \ 86

하지만 x64로 솔루션을 만들고 있습니다. 이제 x86으로 변경되었습니다. 잘 작동합니다.