【发布时间】:2011-09-24 13:25:10
【问题描述】:
我目前正在使用 Petzold 的书作为资源通过 Win32 API 学习 Windows 编程,我想知道是否应该使用 API 中定义的类型而不是标准 C 类型(即 char 代替 CHAR,DWORD 代替无符号长)。我知道这主要是为了向后兼容,但现在使用它们有什么好处吗?
【问题讨论】:
我目前正在使用 Petzold 的书作为资源通过 Win32 API 学习 Windows 编程,我想知道是否应该使用 API 中定义的类型而不是标准 C 类型(即 char 代替 CHAR,DWORD 代替无符号长)。我知道这主要是为了向后兼容,但现在使用它们有什么好处吗?
【问题讨论】:
我只会在直接与 Windows API 交互的代码中使用 Windows 类型,即使这样,也只有在您使用的类型很重要时——比如如果您需要将指向该类型的指针传递给 API 函数,或用于半透明类型,如手柄。不要开始用INT 或DWORD 作为循环计数器变量来编写你的for 循环...
当然我可能有偏见...... ;-)
【讨论】:
使用 Windows 类型,尤其是返回值。你更有可能以这种方式编写可移植的代码(即在 32 位和 64 位版本中工作)。
【讨论】:
When in rome... 是的。它使您的代码“适合”特定环境。
显然,如果使用 MFC/COM+,这比只进行少量 WinAPI 调用的(便携式)控制台应用程序更相关。 (WinAPI 调用仍应使用“windows 类型”,IMOHO。无论如何它们已经包含在内。)
编码愉快。
【讨论】: