在VS 2013中,MBCS支持MFC的副作用

时间:2015-03-22 23:00:13

标签: visual-c++ unicode mfc mbcs

我刚刚尝试在VS2013下编译一个旧的MFC应用程序。它抱怨非Unicode MFC应用程序已被弃用,并拒绝编译。这与谈论弃用MBCS支持的this announcement有点相反。到目前为止,字符集选项有三种选择:

  • 的Unicode
  • MBCS
  • 未设置

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

1 个答案:

答案 0 :(得分:1)

你可以。目前我的所有程序都使用Unicode库。除了一个较旧版本之外,其中包含以前版本的旧代码,此程序需要此版本的更新支持...

  1. 目前仍有Addon支持MBC。
  2. Vote为它
  3. 据我所知,讨论(见Mark Davis日期为2014年12月的评论),这样的插件将可用,包括VS2015(无论版本是什么意思)。
  4. 更准确地说,当您为字符集选择“无”时会发生什么:

    1. 您的程序与MFC的MBCS版本链接
    2. 此外,Windows SDK将默认为API的MBCS版本。因此,即GetWindowTextA是调用而不是GetWindowTextW
    3. 事实上,所以。将_UNICODE和_MBCS设置为空,默认为_MBCS ...

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