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 应用程序中存在问题(CMFCLinkControl
CListView
CMFCButton
...)
但是我找不到一些 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 菜单