2016-05-02 117 views
-1

私は新しいダイアログを作成し、DoModelを呼び出しています。私は次のデバッグアサーションを取得しています。mfc140ud.dllでデバッグアサーションが失敗しました

コードがエラーが

enter image description here

The Assertion is at the debug point as shown in image in dlgcore.cpp file

+0

「再試行」をクリックすると、どうなりますか?アサーションを呼び出すランタイムライブラリの行に移動しているはずです。 – PaulMcKenzie

+0

@PaulMcKenzie:afxwin1.inlは、ランタイムではなくMFC実装の一部です。それ以外は、アサーションダイアログの示唆しているように、もちろん、* Retry *をクリックしてください...無力なことを止めてください。さらに、あなたは 'AcceptFile'オブジェクトの自動保存期間を使用する必要があります。あなたがメモリリークのデバッグ技術を訓練したいのでなければ、それを 'new 'する理由はありません。また、アプリケーションの終了時にデバッグ出力を無視しないでください。それは**あなたに記憶を漏らしていることを伝える**です。 – IInspectable

+0

アドバイスとして、AcceptFileオブジェクトのコードを自動ストレージに変更しましたが、同じエラーが再び発生しています –

答えて

0

AcceptFileはCDialogを継承すると仮定すると、下に示されているよう

if (m_pWatchDogDialog->WatchDogServer().CurrentUserStatus() == CServerLink::AWAY) 
       { 
        CString msg("Requested user is away"); 
        m_pWatchDogDialog->WatchDogServer().SendUserMessage(m_UserKey, msg); 
       } 
      else 
      { 
       AcceptFile *dlg = new AcceptFile(); 
       dlg->DoModal(); // error is throwing up here 
      } 

で、おそらくあなたは、することにより、デバッグアサーションを防ぐことができますlpszTemplateNameを使用してCDialogコンストラクタを呼び出すことでAcceptFileコンストラクタを拡張する議論。例:

class AcceptFile : public CDialog 
{ 
public: 
    AcceptFile(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL) 
     : CDialog(lpszTemplateName, pParentWnd) 
    { 
     // your code here 
    } 

// other stuff 
}; 
関連する問題