根據Using Rich Edit Controls我在這樣的方式使用的RichEdit:崩潰
MyControl::OnCreate()
{
handle = LoadLibrary(_T("Riched20.dll"));
}
MyControl::OnDestroy()
{
FreeLibrary(handle);
}
它工作正常,爲Win32,但頁面重載之後最近我已經建立了64配置,現在我的控制失敗。
我已經注意到,如果做到這一點:
MyControl::OnCreate()
{
handle = LoadLibrary(_T("Riched20.dll"));
FreeLibrary(handle);
handle = LoadLibrary(_T("Riched20.dll"));
}
一切工作正常。
我不希望將此代碼投入生產,因此,有沒有關於更好的解決方案/解決方法的建議?
感謝您的快速回復。我已將代碼移至DllMain,現在一切正常。再次感謝。 – Eugene 2010-11-22 06:59:22
@Eugene樂意幫忙!順便說一句,在DllMain中調用LoadLibrary也會導致問題。請參閱:http://blogs.msdn.com/b/larryosterman/archive/2004/04/23/118979.aspx - 理想情況下,您可以將此代碼放入您的DLL的Init函數中,父應用程序在加載後調用它你的DLL。 (這也是註冊控件的窗口類的正確位置。)但是,如果您無法控制父應用程序,那麼事情會變得棘手。 :( – 2010-11-22 07:38:56