我正在使用 Visual Studio 2012 构建现有的 MFC 应用程序。该应用程序使用"RichEdit20A"控件和自定义控件,它们继承了CRichEditCtrl.
应用期间InitInstance()调用::AfxInitRichEdit2(),调用AtlLoadSystemLibraryUsingFullPath(L"RICHED20.DLL"),调用LoadLibraryExW(pszLibrary, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32)。后一个调用失败并返回NULL。GetLastError()返回 87(参数不正确)。这发生在 Win7 x64 和 Win8 x64 上。
失败的调用似乎是在 Visual Studio 2012 运行时中引入的(它在 conditional 内#if NTDDI_VERSION >= NTDDI_WIN8)。该应用程序在使用 Visual Studio 2008 构建时运行良好。
有谁知道为什么会发生这种情况以及如何解决(或解决)这个问题?或者,有没有办法“恢复”运行时以使用旧的加载行为?