将我在项目中使用的每个Win32 API显式定义为W(宽)或A(ANSI),然后由解决方案/项目配置决定它之间有什么区别?就是说,除了能够即时更改它之外。
说我出于某种原因目前只需要Unicode,让我自动将它们扩展为正确的名称或明确定义它们会更好吗?如果我仅针对ANSI或Unicode进行开发而不同时支持两者,是否会破坏某些系统的发布?
基于“ ANSI”字符集的Windows的最新版本(Windows 9x)在很久以前就已经寿终正寝。所有较新的版本(基于NT),甚至是嵌入式版本,都使用UTF-16提供完整的Unicode支持。对于这些,所有ANSI函数都实现为包装器,这会导致开销(转换需要时间和空间)和数据丢失(ANSI只是Unicode的一个子集)。
我只会使用宽版本。特别是,在导出接口时,我将避免使用基于TCHAR的字符串,因为这将要求我提供两种不同的实现,并且对于现代代码而言,它不是必需的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句