错误:MFC 项目无法定义 _ATL_NO_EXCEPTIONS

Posted

技术标签:

【中文标题】错误:MFC 项目无法定义 _ATL_NO_EXCEPTIONS【英文标题】:Error: MFC projects cannot define _ATL_NO_EXCEPTIONS 【发布时间】:2009-08-30 18:56:39 【问题描述】:

我正在扩展一个开源项目。在新的 C++ 文件中包含 afxcoll.h 以使用 CStringArray 后,我收到此错误:

Error: MFC projects cannot define _ATL_NO_EXCEPTIONS

我怀疑我可以通过添加#defines 或更改或重新排列标题的包含来修复错误,或者,如果不可能,使用 CStringArray 以外的其他东西。你有什么建议?

请在 cmets 中针对此问题提出问题,而不是在您的答案中。

【问题讨论】:

【参考方案1】:

您可以使用CAtlArray<CString> 代替CStringArray,因为这与_ATL_NO_EXCEPTIONS 兼容。 ATL 集合类记录在here。不过,我通常更喜欢使用 C++ 标准库类,例如 std::vector,而不是 MFC 容器类。

我建议调查一下为什么在这个项目中定义了_ATL_NO_EXCEPTIONS,以及是否可以将其删除。

【讨论】:

根据您对使用 CAtlArray 的建议选择的答案【参考方案2】:

如何...不定义 _ATL_NO_EXCEPTIONS 就像错误所说的那样?

(哎呀,这是一个作为答案的问题)。

【讨论】:

以上是关于错误:MFC 项目无法定义 _ATL_NO_EXCEPTIONS的主要内容,如果未能解决你的问题,请参考以下文章

MFC 编译链接错误:unresolved external symbol

MFC:_AFXDLL

VS2010下MFC对话框程序使用CFileDialog对话框出现外部无法解析的密令,错误如下

错误 LNK1104:无法打开文件 'mfc90.lib'

如何使用 MFC 工具提示的示例代码修复错误?

MFC 无法在 dbcore.cpp 中加载错误字符串资源