根据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