相比之前的操作系统,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的更多相关文章

  1. 利用 Windows API Code Pack 修改音乐的 ID3 信息

    朋友由于抠门 SD 卡买小了,结果音乐太多放不下,又不舍得再买新卡,不得已决定重新转码,把音乐码率压低一点,牺牲点音质来换空间(用某些人的话说,反正不是搞音乐的,听不出差别)… 结果千千静听(百度音乐 ...

  2. 适用于 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的 .NET Framework 4.6、4.6.1、4.6.2 和 4.7 以及适用于 Windows Server 2008 SP2 的 .NET Framework 4.6 仅安全更新说明:2017 年 9 月 12 日

    https://support.microsoft.com/zh-cn/help/4040957/description-of-the-security-only-update-for-the-net ...

  3. Windows API Hooking in Python

    catalogue . 相关基础知识 . Deviare API Hook Overview . 使用ctypes调用Windows API . pydbg . winappdbg . dll inj ...

  4. Microsoft Win32 to Microsoft .NET Framework API Map

    Microsoft Win32 to Microsoft .NET Framework API Map .NET Development (General) Technical Articles   ...

  5. Windows VS Code 配置 C/C++ 开发环境

    准备 Windows [这个相信大家都有 笑: )] VS Code MinGW-w64 C/C++ 安装 MinGw-w64 具体说明细节和安装体验可以在<⑨也懂系列:MinGW-w64安装教 ...

  6. C# Windows API

    API:应用程序接口(API:Application Program Interface)应用程序接口(API:application programming interface)是一组定义.程序及协 ...

  7. 初识【Windows API】--文本去重

    最近学习操作系统中,老师布置了一个作业,运用系统调用函数删除文件夹下两个重复文本类文件,Linux玩不动,于是就只能在Windows下进行了. 看了一下介绍Windows API的博客: 点击打开 基 ...

  8. C#调用windows API的一些方法

    使用C#调用windows API(从其它地方总结来的,以备查询) C#调用windows API也可以叫做C#如何直接调用非托管代码,通常有2种方法: 1.  直接调用从 DLL 导出的函数. 2. ...

  9. 在VBA中使用Windows API

    VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个 ...

随机推荐

  1. Linux系统编程——进程间通信:命名管道(FIFO)

    命名管道的概述 无名管道,因为没有名字,仅仅能用于亲缘关系的进程间通信(很多其它详情.请看<无名管道>).为了克服这个缺点.提出了命名管道(FIFO).也叫有名管道.FIFO 文件. 命名 ...

  2. 一分钟制作U盘版BT3 - 有图滴儿 bt3破解教程

    一分钟制作 BT3 U盘版方便,快捷简单无效不退款 光盘版BT3, 大概694MB,直接刻盘,然后用光盘引导,就可以进入bt3,连接为:http://ftp.heanet.ie/mirrors/bac ...

  3. Codeforces Round #311 (Div. 2) D. Vitaly and Cycle 图论

    D. Vitaly and Cycle Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/557/p ...

  4. Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果

    如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 某天看到京东商城首页的滑动广告的Banner,在流动切换的时候有立体的动画效果,感觉很有意思,然后研究了下 ...

  5. replace into

    讨人喜欢的 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在: 2. 如果不存在,则插入:3.如果 ...

  6. 深刻理解Java中final的作用(一):从final的作用剖析String被设计成不可变类的深层原因

    声明:本博客为原创博客,未经同意,不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(原文链接为http://blog.csdn.net/bettarwang/article/det ...

  7. 【JavaScript】JS的启动机制

    DOM  Event------------------>触发function() function  自身的调用 主要就是调用function 1.DOM Event 2.调用function

  8. Don't Starve,好脚本,好欢乐

    最近玩了shank系列的开发公司新出的游戏饥荒(Don't Starve),容量很小,200MB左右,所以可以归类为小游戏..但是游戏性却是相当的高,游戏中各物件的交互出奇的丰富和复杂,我相信该游戏9 ...

  9. Spring.NET 与 NHibernate

    回到 Spring.NET & NHibernate of C#.NET 技术论坛 实战C#.NET编程----Spring.NET & NHibernate从入门到精通 您可以从以下 ...

  10. Cloudera Error: "Failed to handle Heartbeat Response"

    在使用cloudera manager安装CDH过程中,发现安装进程卡在给某个slave机分配parcel上. 查agent的log发现如下错: ...MainThread agent ERROR F ...