2016-08-22 3 views
0

私はQuickFIXライブラリをMFCに統合しようとするGUIアプリケーションを開発しています。私は正常にすべての必要なlibsを追加し、logon()関数を使用して接続しようとすると、私は問題に遭遇しているが含まれています。まず、エンジンはconfigファイルの中でより多くのフィールドを要求し始めます。これはコンソールアプリケーションでは気にしません。 Visual Studio 12.0 \ VC \ include \ xtree 行:デバッグアサーション失敗!プログラム:C:\ Windows \ System32 \ MSVCP120D.DLLファイル:C:\ Program Files(x86) 327 式:map/iteratorsが互換性がありません "。 私がしようとしているのは以下の通りです: 私はメニューを持っています。メニューで "Start"を押すと、boolフラグがtrueに設定されます。私のOnKickIdle関数(アプリケーションはダイアログに基づいています)では、このフラグをチェックし、それが設定されていれば、私はSockeInitiatorの通常の起動を開始します。私がlogon()関数を呼び出すまでは、すべてOKです。呼び出し後、デバッグアサーションがスローされます。これは、コールスタックの出力です:!!のQuickFIXとMFC:Initiatior.logon()関数を使用してログインできない

msvcp120d.dllのstd :: _ Debug_message(のconst wchar_t型*メッセージ、CONSTはwchar_t *ファイル、unsigned int型ライン)ライン15 C++ OKKOIN_BOT.exeのstd :: _ Tree_const_iterator>>> :: =演算子!=(const std :: _ Tree_const_iterator>>> & _Right)Line 327 C++ OKKOIN_BOT.exe!::演算子!=(const std :: _ Tree_const_iterator>>> & _Right)Line 341 C++ OKKOIN_BOT.exe!のFIX :: SocketInitiator :: OnTimeoutパス(FIX :: SocketConnector & __formal)ライン227 C++ OKKOIN_BOT.exe!FIX :: SocketInitiator :: ONSTART()線93 C++ OKKOIN_BOT.exe!FIX ::イニシエータ:: startThread(void *型のP)ライン286 C++ [外部コード]

は、誰かが同じ問題を経験し、MFCにクイックフィックスを統合しようとしたことがありますか?あらかじめ大変ありがとうございました。ここ はまた私のOnKickIdle()関数の一部です:

LRESULT COKKOIN_BOTDlg::OnKickIdle(WPARAM wparam, LPARAM lparam) 
{ 
if (b_startFlag) 
{ 
    std::string filepath = "quickfix-client.cfg"; 
    FIX::SessionSettings settings(filepath); 
    Application app(settings); 
    FIX::FileStoreFactory storefact(settings); 
    FIX::ScreenLogFactory logfactory(settings); 
    FIX::SocketInitiator initiator(app, storefact, settings, logfactory); 
    b_initflag = TRUE; 
    //initializing the needed variables 
    initiator.start();  //use poll instead 
    Sleep(2000); 
    if (initiator.isLoggedOn()) 
    { 
     MessageBox(L"Logged On", L"Information", MB_OK | MB_ICONINFORMATION); 
    } 
    else 
    { 
     MessageBox(L"Not Logged On", L"Information", MB_OK | MB_ICONINFORMATION); 
    } 
} 
return FALSE; 
} 
+0

これをデバッグすると、私たちが推測しようとするよりむしろその方が簡単になります。クイックフィックスの問題ではありませんが、コードのほうが多くなります。 – DumbCoder

+0

実際には、デバッグモードで実行していますが、これはlogon()呼び出しの直後に発生するため、この問題の原因を理解できません。デバッグモードでアプリケーションを実行すると、コード内でどこに発生するのかを確認できますが、このエラーの原因を理解できません。 – MrMan

答えて

1

は最後に、私は、問題の男を発見しました。 QuickFIXで必要とされるWindows Sockets 2をサポートしていないため、MFC自体の問題です。私はその質問が閉じられると思う。

関連する問題