Visual Studio 2012를 사용하여 기존 MFC 응용 프로그램을 빌드하고 있습니다. 응용 프로그램은 CRichEditCtrl
을 상속하는 "RichEdit20A"
컨트롤과 사용자 지정 컨트롤을 사용합니다.:: AfxInitRichEdit2가 실패하고 어떻게 수정합니까?
InitInstance()
동안 응용 프로그램은 ::AfxInitRichEdit2()
을 호출하며 AtlLoadSystemLibraryUsingFullPath(L"RICHED20.DLL")
을 호출합니다.이 번호는 LoadLibraryExW(pszLibrary, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32)
입니다. 후자 호출이 실패하고 NULL
을 반환합니다. GetLastError()
은 87을 반환합니다 (매개 변수가 잘못되었습니다.). 이것은 Win7 x64와 Win8 x64 모두에서 발생합니다.
Visual Studio 2012 런타임에 실패한 호출이있는 것 같습니다 (조건부 #if NTDDI_VERSION >= NTDDI_WIN8
안에 있음). Visual Studio 2008을 사용하여 응용 프로그램을 만들면 올바르게 작동합니다.
이 문제가 발생하는 이유와이 문제를 해결하는 방법을 아는 사람이 있습니까? 또는 이전로드 동작을 사용하도록 런타임을 "되돌리기"위한 방법이 있습니까?
시스템에 RICHED20.DLL이 있는지 확인 했습니까? –
업그레이드 전에 'WINVER'를 0x600으로 설정하십시오. VS 2012에서 새 프로젝트를 만든 경우 Windows 8을 대상으로하는 프로젝트가 끝났을 가능성이 큽니다. 'targetver.h'를 변경하십시오! – l33t
@Lynn Crumbling 예, RICHED20.DLL이 존재합니다. –