在 VS 2013 中弃用对 MFC 的 MBCS 支持的副作用
Side-effect of deprecation of MBCS support for MFC in VS 2013
我刚刚尝试在 VS2013 下编译一个旧的 MFC 应用程序。它抱怨非 Unicode MFC 应用程序已被弃用,并拒绝编译。这与 this announcement 谈论弃用对 MBCS 的支持有些相反。到目前为止,字符集选项共有三种选择:
- Unicode
- MBCS
- 未设置
就个人而言,我完全愿意放弃对 MBCS 的支持 - 我既不想也不需要 MBCS。但我也不想也不需要 Unicode - ANSI/ASCII 对我来说很好。因此,坚持要求今后每个 MFC 应用程序都必须使用 Unicode,并且(实际上)提供支持所有可能语言的平台基础,无论其目标受众是谁,似乎……极端。我错过了什么吗?我是否仍然能够在 VS2013 下编译没有指定字符集的 MFC 应用程序?
可以。目前我所有的程序都使用 Unicode 库。除了一个较旧的,它包含以前版本的非常旧的代码,并且需要此程序来更新此 od 版本的支持...
更准确地说,当您 select "None" 字符集时会发生什么:
- 您的程序链接到 MFC 的 MBCS 版本
- 此外,Windows SDK 将默认为 API 的 MBCS 版本。所以即调用 GetWindowTextA 而不是 GetWindowTextW
所以事实上。将 _UNICODE 和 _MBCS 设置为空只是默认为 _MBCS...
在内部,SDQ 总是检查是否设置了 UNICODE(不是 _UNICODE)。如果不是,则选择 MBCS 版本。
我刚刚尝试在 VS2013 下编译一个旧的 MFC 应用程序。它抱怨非 Unicode MFC 应用程序已被弃用,并拒绝编译。这与 this announcement 谈论弃用对 MBCS 的支持有些相反。到目前为止,字符集选项共有三种选择:
- Unicode
- MBCS
- 未设置
就个人而言,我完全愿意放弃对 MBCS 的支持 - 我既不想也不需要 MBCS。但我也不想也不需要 Unicode - ANSI/ASCII 对我来说很好。因此,坚持要求今后每个 MFC 应用程序都必须使用 Unicode,并且(实际上)提供支持所有可能语言的平台基础,无论其目标受众是谁,似乎……极端。我错过了什么吗?我是否仍然能够在 VS2013 下编译没有指定字符集的 MFC 应用程序?
可以。目前我所有的程序都使用 Unicode 库。除了一个较旧的,它包含以前版本的非常旧的代码,并且需要此程序来更新此 od 版本的支持...
更准确地说,当您 select "None" 字符集时会发生什么:
- 您的程序链接到 MFC 的 MBCS 版本
- 此外,Windows SDK 将默认为 API 的 MBCS 版本。所以即调用 GetWindowTextA 而不是 GetWindowTextW
所以事实上。将 _UNICODE 和 _MBCS 设置为空只是默认为 _MBCS...
在内部,SDQ 总是检查是否设置了 UNICODE(不是 _UNICODE)。如果不是,则选择 MBCS 版本。