NoM*_*ots 8 winapi windows-vista windows-7
WinAPI/Win32有什么根本区别吗?是否需要利用新操作系统功能的其他知识?
过去编写过Win32应用程序的人是否有任何陷阱?
我不是在谈论Silverlight,这是一个完全不同的蜡球.(我还没有在工作中支持它的VS.)
编辑:到目前为止,Drew有一个非常好的答案,但对于程序员来说,什么是至关重要的?即Charles Petzold的书的附录应该是什么?(理论上)
Dre*_*ins 14
当然,您应该注意许多新的API,以确保您拥有所需的工具.除此之外,还有一些变化需要注意.
哲学变化
旧的win32 API的大部分内容都集中在传递句柄的C风格API上.如今,许多正在开发的新API都是基于COM的,因此对COM和ATL的剔除是值得的.
如果您正在编写自己的库,那么您可能还需要注意新的API样式,这样可以更加一致并避免使用匈牙利表示法.
替换
一般来说,不要认为10年前你所知道的方法仍然是最先进的; 他们都存在,所以你不一定会被告知你做错了.检查MSDN以查看它是否更好地引用了您,并使用最新的SDK以便您获得某些功能的弃用警告.特别是,确保您使用的字符串函数是安全的.
具体来说,一个'替换'API是Direct 2d,这是一个用于UI的DirectX风格的API.如果您正在为Windows 7编写图形代码,则应考虑使用Direct2d而不是GDI,它具有与GDI兼容但非常不同的编程模型.Direct 2d可以移植回Vista.
此外,请考虑使用功能区,而不是使用win32风格的菜单,该功能区可用于Vista和Win7.
如果您使用的是通用控件库,请确保使用v6,而不是默认的v5.
最后,确保您没有不必要地调用需要管理员权限的内容,因为这会提示UAC.
我现在所能想到的一切.