调用构造函数时与mfc相关的崩溃
MFC-related crash when calling constructors
我目前正在visual studio中使用MFC和CLR编写应用程序,每当我调用我编写的类的构造函数(该类是通过USB控制相机)时,我的程序就会崩溃。
我有一个基类CameraBase
:
class CameraBase
{
public:
virtual bool getFrame(cv::Mat& outImage) { return true; };
};
和派生类LumeneraCamera
(用于特定的相机):
class LumeneraCamera : public CameraBase
{
public:
DLL_API LumeneraCamera();
DLL_API bool connect(int cameraNum);
DLL_API bool disconnect();
DLL_API bool getFrame(cv::Mat& outImage);
private:
//Bunch of misc variables
};
这些类被编译成DLL并从另一个程序访问:
int main()
{
cout << "Initing camera" << endl;
camera = new LumeneraCamera();
//More operations
}
当我运行程序时,它打印Initing camera
,然后由于dlinit .cpp(第133行:VERIFY(AfxInitExtensionModule(controlDLL, hInstance));
)中的断言而失败。它在构造函数中执行任何操作之前就崩溃了。我不确定问题是什么,但它似乎与MFC有关,所以我目前正在研究从MFC完全解开我的项目。任何建议或修复都很感激!
根据MSDN,如果您的DLL与MFC DLL动态链接,从该DLL导出的每个调用MFC的函数必须在函数的开头添加AFX_MANAGE_STATE宏:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
我最终通过禁用MFC解决了这个问题-一个我使用建议的MFC库,但据我所知,没有它就可以正常工作。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- C++ MFC Libraries in Travis CI
- 儿童对话框 - setWindowTexta或sendmessagea崩溃程序-MFC
- MFC功能区在windows 2008中崩溃
- MFC对话框成员变量的随机崩溃不在范围中
- MFC 结束对话框崩溃时模式对话框没有焦点
- 应用程序崩溃 C++/MFC 的通用日志
- MFC 程序崩溃时调整窗口大小并出现错误"A required resource was not found."
- 混合 mfc 对话框和 mdi 项目的调试版本中崩溃
- MFC C++-在没有命令的ProcessShellCommand()上崩溃
- 调用构造函数时与mfc相关的崩溃
- MFC 应用程序在 AfxCheckDialogTemplate 上崩溃
- MFC:基于宽字符的CMap使程序崩溃
- 具有多重继承的消息映射MFC:如何避免警告C4407和运行时崩溃
- 添加MFC到现有的Win32 c++导致错误/崩溃
- Visual Studio在试图向MFC窗体上的控件添加处理程序时崩溃