0

我只是尝试在 VS2013 下编译一个旧的 MFC 应用程序。它抱怨非 Unicode MFC 应用程序已被弃用,并拒绝编译。这与该声明有关弃用对 MBCS 的支持的声明有些相反。到目前为止,字符集选项有三个选择:

  • 统一码
  • MBCS
  • 没有设置

就个人而言,我完全同意放弃对 MBCS 的支持——我既不想也不需要 MBCS。但我也不需要也不需要 Unicode - ANSI/ASCII 对我来说很好。因此,坚持从今以后每个 MFC 应用程序都必须使用 Unicode,并且(实际上)为平台提供支持所有可能语言的基础,无论其目标受众是谁,这似乎......极端。我错过了什么吗?我是否仍然可以编译没有在 VS2013 下指定字符集的 MFC 应用程序?

4

1 回答 1

1

你可以。目前我所有的程序都使用 Unicode 库。除了一个较旧的版本,它包含以前版本的非常旧的代码,并且需要此程序来支持此 od 版本的更新...

  1. 目前有一个插件仍然支持 MBC。
  2. 为它投票
  3. 据我了解讨论(见 Mark Davis 2014 年 12 月的评论)这样的插件将可用,包括 VS2015(无论是什么版本)。

更准确地说,当您为字符集选择“无”时会发生什么:

  1. 您的程序链接到 MFC 的 MBCS 版本
  2. 此外,Windows SDK 将默认为 API 的 MBCS 版本。所以即 GetWindowTextA 是调用而不是 GetWindowTextW

所以事实上。将 _UNICODE 和 _MBCS 设置为空,只是默认为 _MBCS...

SDQ 在内部始终检查是否设置了 UNICODE(不是 _UNICODE)。如果不是,则选择 MBCS 版本。

于 2015-03-23T07:26:35.153 回答