我正在使用 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 构建时运行良好。
有谁知道为什么会发生这种情况以及如何解决(或解决)这个问题?或者,有没有办法“恢复”运行时以使用旧的加载行为?