TA的每日心情 | 郁闷 2020-4-4 17:29 |
---|
签到天数: 2 天 [LV.1]初来乍到
24:00金丹期
- 积分
- 158
|
1SOUI币
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
int nRet = 0;
SComLoader imgDecLoader;
SComLoader renderLoader;
SComLoader transLoader;
//将程序的运行路径修改到项目所在目录
TCHAR szCurrentDir[MAX_PATH] = { 0 };
GetModuleFileName(NULL, szCurrentDir, sizeof(szCurrentDir));
LPTSTR lpInsertPos = _tcsrchr(szCurrentDir, _T('\\'));
_tcscpy(lpInsertPos + 1, _T(""));
SetCurrentDirectory(szCurrentDir);
{
CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory;
CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory;
imgDecLoader.CreateInstance(COM_IMGDECODER, (IObjRef**)&pImgDecoderFactory);
renderLoader.CreateInstance(COM_RENDER_GDI, (IObjRef**)&pRenderFactory);
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
theApp = new SApplication(pRenderFactory, hInstance);
HMODULE hSysResource = LoadLibrary(SYS_NAMED_RESOURCE);
if (hSysResource)
{
CAutoRefPtr<IResProvider> sysSesProvider;
CreateResProvider(RES_PE, (IObjRef**)&sysSesProvider);
sysSesProvider->Init((WPARAM)hSysResource, 0);
theApp->LoadSystemNamedResource(sysSesProvider);
}
CAutoRefPtr<IResProvider> pResProvider;
SOUI::CreateResProvider(RES_PE, (IObjRef * *)& pResProvider);
if (!pResProvider->Init((WPARAM)hInstance, 0))
{
SASSERT(0);
return 1;
}
theApp->AddResProvider(pResProvider);
CMainWnd wndMain;
wndMain.Create(GetActiveWindow(), 0, 0, 920, 703);
wndMain.SendMessage(WM_INITDIALOG);
wndMain.CenterWindow(wndMain.m_hWnd);
wndMain.ShowWindow(SW_SHOWNORMAL);
nRet = theApp->Run(wndMain.m_hWnd);
if (hSysResource)
{
FreeLibrary(hSysResource);
hSysResource = nullptr;
}
delete theApp;
theApp = nullptr;
}
OleUninitialize();
这是main 函数代码 点击关闭按钮崩溃
TestSOUI.rar
(2.58 MB, 下载次数: 1)
|
-
堆栈信息
-
堆栈信息
最佳答案
查看完整内容
注意你的代码里每个对象的生命周期。
CMainWnd析构要在SApp删除之前。
好好注意demo里的每一行代码。
|