关于Windows® API Code Pack for Microsoft® .NET Framework

相比之前的操作系统,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功能集,为托管代码提供针对原生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),原因是我需要在托管代码中使用最新的DirectX开发三维的应用程序。

使用托管代码开发三维程序(注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

上一篇:Programming C#.Inheritance and Polymorphism


下一篇:delphi webbrowser 经常用法演示样例