繁体   English   中英

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

[英]Side-effect of deprecation of MBCS support for MFC in VS 2013

我只是试图在VS2013下编译一个旧的MFC应用程序。 它抱怨非Unicode MFC应用程序已被弃用,并拒绝编译。 这与本新闻稿中谈论过时的MBCS支持已过时有些相反。 到目前为止,“字符集”选项有三个选择:

  • 统一
  • MBCS
  • 没有设置

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

您可以。 目前,我所有的程序都使用Unicode库。 除了一个较旧的版本以外,其中包括以前版本中非常旧的代码,并且此程序需要此程序才能对此od版本进行更新支持...

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

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

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

所以实际上。 仅将_UNICODE和_MBCS设置为无,默认为_MBCS ...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM