Visual Studio 2012 を使用して既存の MFC アプリケーションを構築しています。このアプリケーションでは、.NET"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 ランタイムで導入されたようです (条件内にあります#if NTDDI_VERSION >= NTDDI_WIN8
)。Visual Studio 2008 でビルドした場合、アプリケーションは問題なく動作しました。
この問題が発生する理由と、この問題を修正 (または回避) する方法を知っている人はいますか? または、ランタイムを「元に戻して」古い読み込み動作を使用する方法はありますか?