MBCS 应用程序是不是支持公共控件 6?

Posted

技术标签:

【中文标题】MBCS 应用程序是不是支持公共控件 6?【英文标题】:Is common control 6 supported in MBCS applications?MBCS 应用程序是否支持公共控件 6? 【发布时间】:2013-11-19 17:31:01 【问题描述】:

我有一个 MBCS(多字节字符)MFC 应用程序,我已经从 stdafx.h 文件中删除了 #ifdefs,现在我的 MBCS 应用程序使用公共控件 6。 在互联网上我发现了很多文章,用户说一些常见的控件 6 控件在 MBCS 应用程序中存在问题(CMFCLinkControlCListViewCMFCButton...) 但是我找不到一些 Microsoft 文章 MBCS 应用程序不支持 common control 6,或者非 Unicode 应用程序有问题的控制列表,有没有 Microsoft 的文章?

【问题讨论】:

如果支持则存在一些错误,请参阅此 topic,我对 CMFCButton 控件也有同样的问题,还有 this MSDN topic 我在哪里找到了这个 ->注意 ComCtl32.dll 版本 6 是 Unicode仅限。 【参考方案1】:

ComCtl32.dll 版本 6 中不支持 MBCS。由于compatibility loophole,MBCS 应用程序大部分仍然可以工作。如果您无法将应用程序转换为 Unicode,请使用版本 5。

【讨论】:

【参考方案2】:

除非您打算支持 Windows 98 或 Windows ME - 这不是建议 - 我的建议是:

将应用程序的下一个版本构建为 UNICODE 应用程序。 全力以赴。 不要把精力放在修复 MBCS 上 问题。

没有人应该为 Windows 编写新的应用程序,除非使用 Unicode。自从 Windows ME 和 Windows98 停产以来就没有。

【讨论】:

我的应用程序使用了一些非 UNICODE 库,不需要将它们更改为 Unicode,现在我需要做的是,在我的应用程序中将 char 转换为 wchar 并使用它并转换回工作与现有的图书馆?我认为这不是一个好主意。 @ArtashesBudaghyan,您最了解您的应用程序。如果你有很多外部依赖,特别是如果你没有源代码,那么你可能是对的。

以上是关于MBCS 应用程序是不是支持公共控件 6?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法可以将 unicode 文本添加到 MBCS MFC 菜单

xcode 是不是支持选项卡控件?

google chromecast iOS SDK 是不是支持锁屏控件?

vc6开发环境由MBCS改成UNICODE

--布局控件常用的公共属性

C# 公共控件之 dateTimePicker