采用quickfix开源代码,代码编写后编译通过部分代码如下:
FixApplication application;
application.SetConfig(&config); std::string fixName = std::string(configPath).append("\\FIX.cfg");
FIX::SessionSettings settings(fixName);
FIX::FileStoreFactory storeFactory(settings);
FIX::ScreenLogFactory logFactory(true, true, true);
FIX::SocketInitiator initiator(application, storeFactory, settings, logFactory);
为什么运行到initiator初始化的这句代码,程序就会报内存错误如下:First-chance exception in FIX44.exe (KERNELBASE.DLL): 0xE06D7363: Microsoft C++ Exception.
First-chance exception in FIX44.exe (NTDLL.DLL): 0xC0000005: Access Violation.
求高手予以解答啊!

解决方案 »

  1.   

    initiator(application, storeFactory, settings, logFactory)
    单步调试看这个函数里的参数是否都有效,很可能是某个参数无效造成的
      

  2.   

    调试了,发现initiator函数可以运行过去,但是遇到}这个大括号就报错
      

  3.   

    参数肯定没问题的,同一段代码,在win32下,就不报错,但是在MFC中就报错的
      

  4.   

    既然是开源的,按F11跟进去看看哪里报错误,有DEBUG么?CallStack看看哪里崩溃
      

  5.   

    0xC0000005: Access Violation.
    -----------------------
    常见的原因是:某个地方使用了无效的句柄
      

  6.   


    开源的跟进去也是,进去后函数没问题,但是运行到摸个大括号}时,就提示Access Violation.了
      

  7.   

    哥们我也遇到这个问题了,有解决方法吗?
    我是VS2008开发的,也是用Win32控制台可以正常运行,但是改为MFC就出错。