当前位置:  开发笔记 > 编程语言 > 正文

没有链接到MFC项目的mfc的c ++静态库会抛出bad_alloc或CMemoryException*吗?

如何解决《没有链接到MFC项目的mfc的c++静态库会抛出bad_alloc或CMemoryException*吗?》经验,为你挑选了0个好方法。

我正在为MFC应用程序开发一个庞大的老化代码库.随着时间的推移,许多开发人员已经开始使用该代码,因此,我们在处理新分配失败的可能性的代码中有三种不同的方式.

第一种方法是测试new的结果为NULL.我们不使用nothrownew.obj,所以这显然是一个需要清理的错误.

第二个是捕获CMemoryException*(是的,在编译器中启用了C++异常).根据我的理解,MFC会覆盖标准运算符new,而是抛出这个东西.我很确定第二种方法在MFC应用程序本身中是正确的.MFC覆盖new,其奇怪的CMemoryException抛出版本.

最后一个来自我们熟悉C++的人,但不一定是MFC程序员.他们正在捕捉const std :: bad_alloc&.

我真正不知道的是链接到应用程序的静态库会发生什么.这是使用bad_alloc生命的绝大多数代码.假设这些库没有使用MFC或ATL编译,并且只使用标准C++编写,他们是否可以捕获bad_alloc?或者,他们链接的应用程序中MFC的存在是否会使用全局新运算符感染它们并使它们尝试在错误的分配上干净利落地失败?

如果你有答案,你能解释一下它是如何工作的,或者指出我正确的参考来解决这个问题吗?

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有