標籤:style blog http io ar os 使用 sp for
相比之前的作業系統,Window 7(or Vista)提供了很多新特性,我們在應用實現中可以利用這些特性來提升使用者體驗。
這些特性主要包括以下幾個方面:
- Shell Enhancements
- DirectX Technologies
- Application Restart and Recovery
- Extended Linguistics Services (ELS)
- Sensor Platform
- Aero Glass
這些原生Windows特性在託管應用程式中需要基於COM Interop技術實現,因此微軟開發了Windows API Code Pack提供必要的COM Interop代碼,用於補充.NET Framework功能集,為Managed 程式碼提供針對原生Windows API的操作介面。
在最新版本的.NET Framework設計中,微軟在WPF中包含了部分之前在Windows API Code Pack中實現的功能(如Shell相關功能),對於剩餘的其他部分則推薦基於原生C/C++語言調用,不再提供官方程式包為託管程式開發提供支援,並取消了Windows API Code Pack項目。
因此,現在我們開啟官方連結會看到“The Archive Gallery has been retired.”提示,無法在下載到Windows API Code Pack的代碼。但是網上還可以找到第三方的1.1版的備份,如github(注3)。
在這裡介紹Windows API Code Pack的前世今生(注2),原因是我需要在Managed 程式碼中使用最新的DirectX開發三維的應用程式。
使用Managed 程式碼開發三維程式(注1)使用的Wrapper有以下幾個選擇:
- Managed Direct3D(微軟官方)
- XNA(微軟官方)
- Windows API Code Pack(DirectX) (微軟官方)
- SlimDx(第三方)
- SharpDx(第三方)
這些選擇中,MDX已經被淘汰掉,XNA在遊戲開發方面有一些優勢,但同時在新版本D3D支援上也有很多不足之處,而SlimDx和SharpDx為第三方提供的。
Windows API Code Pack(DirectX)相比以上其他選項的優勢主要在於以下幾個方面:
1/ 依賴項少,使用方便:只需在應用中引用一個1M左右大小的dll;
2/ 支援Dx11:封裝目標基於Windows 7,對於需要升級DirectX並利用新特性的應用特別有吸引力;
3/ 穩定、高效:微軟官方品質;
引用:
1/ 在.NET中使用DirectX
http://blogs.msdn.com/b/chuckw/archive/2010/12/09/directx-and-net.aspx
2/ windows api code pack v1_1
http://www.cnblogs.com/gnielee/archive/2010/12/29/windows-api-code-pack-v1_1.html
3/
https://github.com/dbarros/WindowsAPICodePack or 使用nuget
關於Windows® API Code Pack for Microsoft® .NET Framework