libpqxx在DEBUG模式下抛出异常
libpqxx throws an exception during DEBUG mode
我有一个使用libpqxx的MFC项目。
发布模式正常工作。但是当我切换到调试模式时,它显示了一个异常,并说Debug断言:
最有趣的事情是,如果我使用共享DLL而不是静态(当然调试)它的工作原理!基本上,Debug with Static Library显示了这个异常/错误。如果我切换到共享DLL,它再次工作。当然,我可以使用共享作为调试和静态作为发布,但这是正确的事情?
注:本项目为基础和新鲜。我没有从配置管理器更改任何配置。
任何建议吗?
好吧,我不确定libpqxx
是否使用MFC(以及哪一个?)。我怀疑您正在从一个堆中分配一些内存,并从另一个堆中取消分配。混合MFC版本,以及MFC的静态/非静态混合都会导致这种断言。
不要将其视为在发布版本中工作 !它只是没有为自己辩护(即现在显示任何断言消息)。最好的办法是找到这个问题的原因,首先是查找调用堆栈(在这个断言对话框上点击Retry)。
看,如果libpqxx
依赖于MFC,或者它不允许混合静态版本的MFC。您可以查看libpqxx
的文档,和/或使用Dependency Walker查看库是否使用MFC。
相关文章:
- 从构造函数抛出异常时如何克服内存泄漏
- 函数如何通知用户它基于函数原型抛出异常?
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- VisualStudios 会抛出异常,而代码块不会 [C++]
- 如果不包含 pthread,为什么 GCC 的线程标准库实现会抛出异常?
- ZMQ::send() 抛出异常并终止 QNX 进程.为什么以及如何从中恢复?
- new(std::nothrow) int[n] 抛出异常
- 为什么g_object_set抛出异常(vcruntime140.dll)?
- 你能防止 std::regex 在无效表达式上抛出异常吗?
- C++子线程抛出异常
- 我们应该在抛出异常之前取消分配内存吗
- 有没有一种方法可以让OpenCLC++绑定为所有错误抛出异常
- 为什么访问模板化变体作为返回值抛出异常
- 如何实现,错误分配中止而不是抛出异常
- std::p riority_queue::p op什么时候会抛出异常
- 在0x5914F3BE抛出异常(基于.dll)
- std::vector 默认构造函数可以抛出异常吗?
- 挂钩创建文件抛出异常:读取访问冲突
- getaddrinfo 抛出异常
- libpqxx在DEBUG模式下抛出异常