问题报错
1.错误 MSB8031 Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library.
错误 MSB8031不赞成为非Unicode字符集生成MFC项目。您必须将项目属性更改为Unicode,或者下载一个附加库。
2.错误 C1189 #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
错误C1189 #错误:使用/MD[d] (CRT dll版本)生成MFC应用程序需要MFC共享dll版本。请#define _AFXDLL或不要使用/MD[d]
解决
1.错误 MSB8031 Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library.
这个错误 MSB8031
指出,你的 MFC 项目正在使用非 Unicode 字符集进行构建,而这已经被弃用。你需要将项目属性更改为 Unicode 字符集,或者下载并安装额外的库来处理非 Unicode 字符集。
要解决这个问题,你可以按照以下步骤进行操作(这是基于 Visual Studio 的假设,具体步骤可能有所不同):
打开你的项目。
在 Visual Studio 中,选择菜单中的 "Project"(项目) > "Properties"(属性)。
在弹出的属性对话框中,找到 "General"(常规)选项卡。
在 "Character Set"(字符集)下拉菜单中,选择 "Use Unicode Character Set"(使用 Unicode 字符集)。
确认更改并重新编译项目。
如果你不想迁移到 Unicode,也可以尝试下载并安装 Microsoft Foundation Classes for Unicode (MFC) 库。这个库提供了支持 Unicode 的 MFC 版本,可以用于在非 Unicode 项目中使用。
在 Visual Studio 安装程序中,你可以检查是否安装了这个库。如果没有安装,你可以选择重新安装 Visual Studio 并确保选择了 MFC 组件。
请注意,尽管使用 Unicode 在许多情况下是一个良好的选择,但在某些特定情况下,可能需要继续使用非 Unicode 字符集。在这种情况下,请确保你的项目中的字符集设置是正确的。
2.错误 C1189 #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] SciBinocularCalibration
这个错误 C1189 提示你正在尝试使用 MFC 应用程序,但编译选项使用了 /MD
或 /MDd
(指定运行时库的多线程 DLL 版本)。这需要使用 MFC 共享 DLL 版本,而你的项目并没有定义 _AFXDLL
,因此编译器产生错误。
要解决这个问题,你可以执行以下步骤:
打开你的项目。
在 Visual Studio 中,选择菜单中的 "Project"(项目) > "Properties"(属性)。
在弹出的属性对话框中,找到 "C/C++" > "Preprocessor"(预处理器)选项。
在 "Preprocessor Definitions"(预处理器定义)中,添加
_AFXDLL
。确认更改并重新编译项目。
这样做会告诉编译器你的应用程序使用了 MFC 共享 DLL 版本。
如果你仍然遇到问题,可以检查你的项目设置,确保以下设置正确:
-
在 "C/C++" > "Code Generation"(代码生成)中,确保 "Runtime Library"(运行时库)设置为 "Multi-threaded DLL (/MD)" 或 "Multi-threaded Debug DLL (/MDd)"。
-
在 "General"(常规)选项卡中,确保 "Use of MFC"(使用 MFC)设置为 "Use MFC in a Shared DLL"(在共享 DLL 中使用 MFC)。
确保这些设置都正确,重新编译你的项目,应该就能够解决这个问题了。