0

コードのプロジェクトを継承したばかりですが、何らかの理由でビルドされた実行可能ファイルが実行後すぐに閉じてしまいます。プロジェクトが私に与えられる前に、ビルドして正常に実行されたように見えますが、それはここでもそこでもありません。

そのため、プロジェクトがどのように機能するかがわからないため、この問題をデバッグしようと試み、次のコードを含めるようにしました。

CMyApp* pApp = (CMyApp*)AfxGetApp();
ShowWindow(SW_SHOW);
UpdateWindow();
if ( !pApp->RestoreWindowPos( this, MAINFRAME_POSITION_ENTRYNAME ) )
{
    MoveWindow( CRect(0,0,636,470) );
}

CRect rect(0,0,0,0);
GetClientRect(&rect);

int nWidth = pApp->GetProfileInt(_T("Settings"), QUEUESVIEW_SPLITTER_WIDTH, 200 );
m_wndSplitter.SetColumnInfo( 0, nWidth, 50 );
nWidth = pApp->GetProfileInt(_T("Settings"), EXTENSIONSVIEW_SPLITTER_WIDTH, 200 );
m_wndSplitter.SetColumnInfo( 1, nWidth, 50 );
m_wndSplitter.RecalcLayout();

ここで、読み込まれるウィンドウは 4 つのパネル (2 列、2 行) に分割されることになっています。これにより、それぞれの位置とサイズが明確に処理されていることがわかります。この問題は、特に最後の行によって引き起こされm_wndSplitter.RecalcLayout()ます。その 1 行をコメントアウトすると、ウィンドウは正常に読み込まれますが、すべてのボタンがグレー表示され、パネルのサイズを変更しようとすると、アプリケーションがクラッシュします。

申し訳ありませんが、これ以上詳しく説明することはできませんが、私はこのコードに慣れていません。だから私の質問は、その行を含めることがこの効果を引き起こす可能性がある状況を誰でも考えることができますか? 前回の動作時からコードに変更がないように見えるため、説明したこと以外に何もする必要はありません。

誰でも提供できる助けをありがとう!

4

0 に答える 0