C++ libpqxx在调试模式期间引发异常
我有一个使用libpqxx的MFC项目。所有设置都是默认设置 释放模式如我所料正常工作。但当我切换到调试模式时,它会显示一个异常并显示调试断言: 最有趣的是,如果我使用共享DLL而不是静态DLL(当然是在调试时),它就可以工作了 基本上,使用静态库调试会显示此异常/错误。如果我切换到共享DLL,它会再次工作。当然,我可以使用共享作为调试,使用静态作为发布,但是这是正确的吗 注:本项目是基础和新鲜的。我没有从Configuratrion Manager更改任何配置C++ libpqxx在调试模式期间引发异常,c++,visual-c++,c++11,postgresql-9.2,libpqxx,C++,Visual C++,C++11,Postgresql 9.2,Libpqxx,我有一个使用libpqxx的MFC项目。所有设置都是默认设置 释放模式如我所料正常工作。但当我切换到调试模式时,它会显示一个异常并显示调试断言: 最有趣的是,如果我使用共享DLL而不是静态DLL(当然是在调试时),它就可以工作了 基本上,使用静态库调试会显示此异常/错误。如果我切换到共享DLL,它会再次工作。当然,我可以使用共享作为调试,使用静态作为发布,但是这是正确的吗 注:本项目是基础和新鲜的。我没有从Configuratrion Manager更改任何配置 有什么建议吗?好的,我不确定li
有什么建议吗?好的,我不确定
libpqxx
是否使用MFC(以及哪个?)。我怀疑您正在从一个堆分配一些内存,然后从另一个堆取消分配。混合使用MFC版本以及MFC的静态/非静态混合将导致此断言
不要将其视为正在进行发布构建!它只是不为自己辩护(即现在显示任何断言消息)。最好的办法是找到这个问题的原因,第一步是查找调用堆栈(点击这个断言对话框上的重试)
请参阅,如果
libpqxx
依赖于MFC,或者它禁止混合MFC的静态版本。您可以查看libpqxx
的文档,和/或使用Dependency Walker查看库是否使用MFC。好的,我不确定libpqxx
是否使用MFC(以及哪个?)。我怀疑您正在从一个堆分配一些内存,然后从另一个堆取消分配。混合使用MFC版本以及MFC的静态/非静态混合将导致此断言
不要将其视为正在进行发布构建!它只是不为自己辩护(即现在显示任何断言消息)。最好的办法是找到这个问题的原因,第一步是查找调用堆栈(点击这个断言对话框上的重试)
请参阅,如果
libpqxx
依赖于MFC,或者它禁止混合MFC的静态版本。您可以查看libpqxx
的文档,和/或使用Dependency Walker查看库是否正在使用MFC。共享调试DLL-如何和什么?你是说MFC还是ATL?很抱歉忘了提这个。是的,MFC。我更新了我的问题。共享调试DLL-如何和什么?你是说MFC还是ATL?很抱歉忘了提这个。是的,MFC。我更新了我的问题。…以及MFC的静态/非静态混合将导致此断言…
我最终选择了另一个名为libpqxxd.lib和woala的库文件:)它可以正常工作。我只是混合了一些东西。顺便说一句,这不是直接为MFC。因为在MFC中,它显示一个错误“null”:找不到标识符。但标准Win32项目构建得很好。我仍然不知道如何传递空错误。…以及MFC的静态/非静态混合将导致此断言…
我最终选择了另一个名为libpqxxd.lib和woala的库文件:)它可以正常工作。我只是混合了一些东西。顺便说一句,这不是直接为MFC。因为在MFC中,它显示一个错误“null”:找不到标识符。但标准Win32项目构建得很好。我仍然不知道如何传递空错误。