C语言的Win32 API有许多函数都有双重版本,以支持Unicode(UTF-16)字符串和旧的8位代码页字符串。API还定义了一些通用函数和类型来在一定程度上抽象出这些差异,并允许从同一代码库中编译这两个版本。
微软建议始终使用通用函数(请参见函数原型约定),以便可以编译两个版本。但是我的问题是,我们需要支持哪些版本的Windows操作系统,通过8位字符串API呢?如果是Windows 95的话,它已经不是我的首要关注点了 : )。如果通用函数只是为了支持极度陈旧的情况,似乎直接使用UTF-16调用会更容易和更清晰一些。
微软建议始终使用通用函数(请参见函数原型约定),以便可以编译两个版本。但是我的问题是,我们需要支持哪些版本的Windows操作系统,通过8位字符串API呢?如果是Windows 95的话,它已经不是我的首要关注点了 : )。如果通用函数只是为了支持极度陈旧的情况,似乎直接使用UTF-16调用会更容易和更清晰一些。
CreateWindow
比CreateWindowW
更易读、易记,而且在所有的书籍、教程和示例中都是这样。 - Igor TandetnikW
的版本,但不必费心测试编译是否针对 8 位 API。 - o11c