关于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

转载于:https://www.cnblogs.com/dadream/p/4089900.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

出门就背他了!可伸缩的背包,自由变大变小,还有防盗功能!

▲ 点击查看出门能不背包就不背包,几乎是小爆身边每个男生的人生信条。不背包时,两手空空一身轻,潇洒有型。但一旦到了必须背包,比如五一外出回家或旅游的时候,男同胞们翻箱倒柜找出来的背包,大多都是这种双…

C#实现网页加载后将页面截取成长图片 | Playwright版

前言如何将网页生成预览图?要实现这个功能,可以用WebBrowser组件模拟浏览器,或者使用系统浏览器访问网页,再进行截图操作。但是,这样需要编写大量的控制代码。工欲善其事,必先利其器!利用Playwr…

Android安全与逆向之Dex动态加载

Dex动态加载是为了解决什么问题? 在Android系统中,一个App的所有代码都在一个Dex文件里面。 Dex是一个类似Jar的存储了多个Java编译字节码的归档文件。 因为Android系统使用Dalvik虚拟机,所以需要把使用Java Comp…

python链接mysql报错2003_Python连接Mysql报错问题解决

import MySQLdb #打开数据库 db MySQLdb.connect("127.0.0.1","root","123456","testdb",3306) #使用corsor()方法获取操作游标 cursor db.cursor() #使用execute方法执行SQL语句 cursor.execute("SELECT VERSION()") #使…

死锁示例代码

死锁产生实例&#xff0c;两个线程两个互斥锁&#xff0c;每个线程占有一个互斥锁&#xff0c;同时想获得另一个互斥锁则会产生死锁。解决方案&#xff1a;  1.一次占有全部资源  2.每个线程占有锁的顺序是一致的。比如都是同时占有A&#xff0c;然后占有B锁。#include <…

从服务器上的数据库备份到本地

可以直接在数据库进行操作&#xff1a;把需要备份的数据库选择生成脚本。生成脚本有一个高级选项&#xff0c;可以设置数据库架构跟数据。然后在本地新建一个跟备份数据库一样的数据库名称&#xff0c;进行运行脚本。就可以了。如果不新建一个数据库。就会报错。转载于:https:/…

Android之在ubuntu上用aapt查看apk的名字以及相关信息

第一步:如何快速找把手机里面的apk文件本地 如果我们不知道apk的包名,我们先打开需要的apk,然后再打开终端,输入下面命令获取这个apk的包名 adb shell dumpsys activity 查看当前apk的包名,有了包名,然后我们可以快快速获取apk,参照我的另外一篇博客 http://blog.csdn.n…

nodejs项目_多人群聊实现其实很简单:Nodejs+WebSocket+Vue轻松实现Web IM

点击右上方红色按钮关注“web秀”&#xff0c;让你真正秀起来前言在《Nodejs WebSocket简单介绍及示例 - 第一章》中简单的介绍了&#xff0c;Nodejs WebSocket的使用方法及作用&#xff0c;今天就用它来搭建一个简单的聊天室功能。1、NodejsWebSocket创建后台服务器功能 2、…

支付宝 .NET SDK 报错:RSA签名遭遇异常,请检查私钥格式是否正确。

AlipaySDKNet 是 .NET 平台下用于对接支付宝支付的官方 SDK。Alipay SDK for .NET 让您不用复杂编程即可访问支付宝开放平台开放的各项能力&#xff0c;SDK可以自动帮您满足能力调用过程中所需的证书校验、加签、验签、发送HTTP请求等非功能性要求。其 Nuget 链接如下&#xff…

交友软件上的两种网友类型......

1 轻轻松松月入五千的方法&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 像极了期末复习的你&#xff08;via.段子楼&#xff0c;侵删&#xff09;▼3 听说你想要中国的熊猫▼4 听说学校附近有野人出没&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼5…

meta标签的作用

meta标签共有两个属性&#xff0c;它们分别是http-equiv属性和name属性&#xff0c;不同的属性又有不同的参数值&#xff0c;这些不同的参数值就实现了不同的网页功能。 一.http-equiv属性 定义和用法&#xff1a;把 content 属性连接到 HTTP 头部&#xff0c;它可以向浏览器传…

iCloud7_Next Steps

下一步Next Steps 在此次指导中&#xff0c;你创建了一个复杂的iOS应用&#xff0c;使用iCloud保存它的文档。设计一个支持 iCloud 的应用程序&#xff0c;涉及很多决策&#xff0c;即使这样&#xff0c;本教程只触及表面&#xff08;浅层&#xff09;。当你继续了解集成 iClou…

operation 多线程

2.Cocoa Operation 优点&#xff1a;不需要关心线程管理&#xff0c;数据同步的事情。Cocoa Operation 相关的类是 NSOperation &#xff0c;NSOperationQueue。NSOperation是个抽象类&#xff0c;使用它必须用它的子类&#xff0c;可以实现它或者使用它定义好的两个子类&#…

Android插件化开发基础之Java动态代理(proxy)机制的简单例子

一、代码 package com.sangfor.tree;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;interface ProxyInterFace { public void proxyMethod(); } class TargetObject implements ProxyInterFace { publ…

python获取键盘事件_50-用Python监听鼠标和键盘事件

PyHook是一个基于Python的“钩子”库&#xff0c;主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32&#xff0c;如同名字所显示的&#xff0c;PyWin32只能运行在Windows平台&#xff0c;所以PyHook也只能运行在Windows平台。 关于PyHook的使用&…

解读最新的 Xamarin 更新

微软中国MSDN 点击上方蓝字关注我们Good news——Visual Studio 2022 包括了 Xamarin 对 Android 12和苹果最新的 Xcode 13 版本下的 iOS、iPadOS、macOS 和 tvOS 的支持&#xff0c;以及适用于支持它们的最新 Xamarin.Forms 版本。让我们一起来了解下最新 Xamarin版本&#x…

原来医生的处方不是随便乱写的...

1 奇奇怪怪的知识又增加了&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 像极了早上刚睡醒炸毛的你▼3 原来医生的处方不是瞎写的▼4 当爷爷不当孙子&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼5 40厘米的身高差&#xff08;素材来源网络&#xf…

Uva 11400,照明系统设计

题目链接&#xff1a;https://uva.onlinejudge.org/external/114/11400.pdf 题意&#xff1a;有一个照明系统需要用到n种灯&#xff0c;每种灯的电压为V&#xff0c;电源费用K&#xff0c;每个灯泡费用为C&#xff0c;需要该灯的数量为L。注意到&#xff0c;电压相同的灯泡只需…

Android之解决Gigaset手机不能设置DeviceOwner权限提示already provisioned问题

客户那里有Gigaset手机,安装我们的产品需要注入DeviceOwner,但是刚恢复默认出厂的Gigaset手机很奇葩,注入权限的提示下面错误,导致不能使用我们的产品 设置DeviceOwner权限是有限制的,需要手机账号(acount)为0 1 我们用命令查看手机的帐号 adb shell dumpsys account …

Python-理解装饰器

文章先由stackoverflow上面的一个问题引起吧&#xff0c;如果使用如下的代码&#xff1a; makebold makeitalic def say():return "Hello" 打印出如下的输出&#xff1a; <b><i>Hello<i></b> 你会怎么做&#xff1f;最后给出的答案是&#x…