【Windows学习笔记】1:OneCore和Windows API

1 OneCore

主流Windows跑在PC上,Xbox跑的是从Windows 2000分支出来的版本,Windows Phone跑的是基于Windows CE(实时操作系统)的版本。

为了维护和扩展这些code方便,微软将kernels和base platform集成在一起叫OneCore,这个共享平台给所有的Windows版本使用。

这些平台互不相同,比如P在HoloLens上支持键鼠就不合理,所以这些部分不在OneCore里,但是kernel、driver和base platform binary之类的是相同的(有些feature可以通过registry-based或者policy-based settings使得在不同的平台上都make sense)。

2 Windows API

指和Windows相关OS的user-mode的系统编程接口,也叫Win32 API,但是指代的包含32-bit和64-bit的版本。在MSDN(Microsoft Developer Network)上可以在线浏览各种Windows API。

2.1 COM (Component Object Model)

由于Windows API最早都设计成C-style的function,好处是足够low level,并且能方便被其它语言access,但是坏处是naming consistency和logical groupings不好,所以就做了COM。

COM最早是给Office做文档之间的数据交换的(比如把Excel表嵌入在Word或者PPT里),这个功能最早是用基于DDE(Dynamic Data Exchange)的OLE(Object Linking and Embedding)做的,所以COM就是第二代的OLE,最早也叫OLE 2。

COM用的是类似C++实现virtual function的方式,COM client会用在virtual table机制下的一组method去调 COM server object,这样就解决了编译器的name mangling问题,所以它可以被很多不同的语言或者编译器调用,比如C/C++/VB/.Net/Delphi等。COM server一般就是以DLL或者EXE的形式。COM还有一些security、跨进程marshalling、线程模型之类的feature。

像DirectShow、Windows Media Foundation、DirectX等用的就是COM形式的API。

2.2 WinRT (Windows Runtime)

从Windows 8开始引入的,基于COM添加了各种扩展而构建的一种新的调用方式。

C++、JS以及.Net平台上的语言可以方便地用WinRT的API,比如对C++而言,是提供了一种标准之外的extension叫C++/CX来让它用简便的方式消费WinRT types。

2.3 .Net Framework

.Net Framework是Windows的一部分,下图是Windows版本默认安装的.Net Framework版本(可以装更新的.Net Framework版本,但是不能装更久的版本)。
在这里插入图片描述
.Net Framework主要由两个组件组成:

  • CLR(Common Language Runtime):.Net的runtime engine,包含将CIL(Common Intermediate Language)转换成底层的机器语言的JIT(Just In Time)编译器、GC、类型验证、code access security组件等等。
  • FCL(.Net Framework Class Library):一组实现好的类型集合,可以用于网络服务编程、数据库访问等等。

在这里插入图片描述

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

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

相关文章

宿舍|基于SprinBoot+vue的宿舍管理系统(源码+数据库+文档)

宿舍管理系统 基于SprinBootvue的私人诊所管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 后台模块实现 管理员功能实现 学生功能实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&…

【计算机组成原理】六、总线:3.操作和定时

5.操作和定时 文章目录 5.操作和定时5.1总线传输的四个阶段5.2总线定时5.2.1同步通信5.2.2异步通信5.2.3半同步通信5.2.4分离式通信 2.3按时序控制方式 同步总线异步总线 5.1总线传输的四个阶段 总线周期: 申请分配阶段:由需要使用总线的主模块&#…

【C++11及其特性】左值和右值

左值和右值目录 一.左值和右值的报错1.简单定义2.函数返回值作左值3.表达式作左值 二.存储的层次结构1.CPU2.内存3.磁盘4.三者联系5.寄存器 三.左值和右值的概念1.左值2.右值3.转换 一.左值和右值的报错 1.简单定义 赋值号’左边的为左值,右边的为右值. 2.函数返回值作左值 …

力扣刷题(3)

整数反转 整数反转-力扣 思路&#xff1a; 利用%和/不断循环取待反转整数的最后一位&#xff0c;注意判断是否超出范围。 int reverse(int x){int y0;while(x){if(y > INT_MAX/10 || y < INT_MIN/10)return 0;int tmpx%10;yy*10tmp;x/10;}return y; }字符串转换整数 …

自动化代码报错:ElementClickInterceptedException 解决方案

在自动化测试中&#xff0c;如果有多个弹窗出现&#xff0c;代码执行可能会遇到ElementClickInterceptedException的错误&#xff0c;表明元素点击被拦截&#xff1a; 一般由于以下原因&#xff1a; 一、页面加载未完成 在页面尚未完全加载完成时尝试点击某个元素&#xff0c…

ENVI SARscape||笔记

介绍就不介绍了&#xff0c;直入主题&#xff01; 第一章 ENVI和SARscape 下载与安装&#xff1a; ENVI 5.6 软件安装包下载及安装激活教程&#xff01; (qq.com)https://mp.weixin.qq.com/s/kH0g5g9AALgDNPssfdZ8wQ 启动 ENVI 的启动模式有两种&#xff1a;ENVI和ENVIIDL&…

前端性能优化:提升网站加载速度的五个关键技巧

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介前端性能优化&#xff1a;提升网站加载速度的五个关键技巧1. 引言2. 前端性能优化的五个关键技巧2.1 减少HTTP请求技巧说明实现示例 2.2 启用浏览器缓存技巧说明实现示例 2.3 使用内容分发网络&#xff08;CDN&#xff09;技巧说明…

Adobe DC 2022提示无法识别的错误 - 解决方案

Adobe DC 2022提示无法识别的错误 - 解决方案 问题解决方案更改安装&#xff08;推荐&#xff09;重新安装&#xff08;推荐&#xff09;降级安装&#xff08;不推荐&#xff09; 问题 使用Adobe DC 2022合并图片创建PDF时&#xff0c;会提示无法识别的错误&#xff0c;这是因…

Mac 安装Hadoop教程

1. 引言 本教程旨在介绍在Mac 电脑上安装Hadoop&#xff0c;便于编程开发人员对大数据技术的熟悉和掌握。 2.前提条件 2.1 安装JDK 想要在你的Mac电脑上安装Hadoop&#xff0c;你必须首先安装JDK。具体安装步骤这里就不详细描述了。你可参考Mac 下载JDK8。 2.2 配置ssh环境…

2024如何开始进入美业?美业创业步骤分享|博弈美业系统管理系统源码

进入美业可以是一个令人兴奋且具有挑战性的决定。以下是一些步骤&#xff0c;希望可以帮助你在美业建立自己的职业生涯&#xff1a; 1.确定你的兴趣和专长&#xff1a; 首先要考虑你对美业的兴趣和擅长的领域&#xff0c;比如化妆、美发、美甲、美容护理等。确定自己的兴趣和优…

另一种关于类的小例

前言 我们还是以一段关于构造函数的代码作为开端&#xff0c;我们以之前银行家的小项目为背景 class Account {constructor(owner, currency, pin) {this.owner owner;this.currency currency;this.pin pin;} }const ITshare new Account(ITshare, EUR, 21211); console.…

视频:Python深度学习量化交易策略、股价预测:LSTM、GRU深度门控循环神经网络|附代码数据...

全文链接&#xff1a;https://tecdat.cn/?p37539 分析师&#xff1a;Shuo Zhang 本文以上证综指近 22 年的日交易数据为样本&#xff0c;构建深度门控循环神经网络模型&#xff0c;从股价预测和制定交易策略两方面入手&#xff0c;量化循环神经网络在股票预测以及交易策略中的…

zabbix对接Grafana

1.grafana安装 Download Grafana | Grafana Labs sudo yum install -y https://dl.grafana.com/oss/release/grafana-11.1.4-1.x86_64.rpm 2.zabbix插件安装 Grafana 默认并没有 zabbix 数据源的支持&#xff0c;只有安装了zabbix插件&#xff0c;才可以在grafana中添加zabbi…

Simulink代码生成:关系运算与逻辑运算

文章目录 1 引言2 模块使用实例2.1 关系运算2.2 关系运算 3 代码生成4 总结 1 引言 在Simulink中经常需要判断两个信号的大小关系、是否相等&#xff0c;或者判断布尔类型信号的与、或、非等。本文研究通过关系运算与逻辑运算模块实现上述需求。 2 模块使用实例 2.1 关系运算…

操作系统:实验一进程控制实验

一、实验目的 1、掌握进程的概念&#xff0c;理解进程和程序的区别。 2、认识和了解并发执行的实质。 3、学习使用系统调用fork()创建新的子进程方法&#xff0c;理解进程树的概念。 4、学习使用系统调用wait()或waitpid()实现父子进程同步。 5、学习使用getpid()和getppi…

CentOS全面停服,国产化提速,央国企信创即时通讯/协同门户如何选型?

01. CentOS停服带来安全新风险&#xff0c; 国产操作系统迎来新的发展机遇 2024年6月30日&#xff0c;CentOS 7版本全面停服&#xff0c;于2014年发布的开源类服务器操作系统——CentOS全系列版本生命周期画上了句号。国内大量基于CentOS开发和适配的服务器及平台&#xff0c…

挂个人-CSDN Java优秀内容博主rundreamsFly抄袭

事件起因 今天点开自己的CSDN博客&#xff0c;发现给我推了一篇文章抄袭我自己昨天18点发的文章。 就是这篇&#xff0c;一字不差&#xff0c;博主昵称是&#xff1a;rundreamsFly&#xff0c;账号是rundreams。 抄袭者文章 发布于2024-8-26 19:37:41秒&#xff0c;比我发布…

CoMat——解决文本与图像之间的差异

概述 论文地址&#xff1a;https://arxiv.org/abs/2404.03653 在文本到图像生成领域&#xff0c;扩散模型近年来取得了巨大成功。然而&#xff0c;提高生成图像与文本提示之间的一致性仍然是一个挑战。 论文指出&#xff0c;扩散模型中文本条件利用不足是对齐的根本原因。论…

巧用scss实现一个通用的媒介查询代码

巧用scss实现一个通用的媒介查询代码 效果展示 实现代码 <template><div class"page-root"><div class"header"></div><div class"content"><div class"car-item" v-for"item in 9">…

K8S持久化存储数据

环境&#xff1a; Ubuntu-1:192.168.114.110作为主 Ubuntu-2:192.168.114.120作为从1&#xff0c;node节点1 Ubuntu-3:192.168.114.130作为从2&#xff0c;node节点2 持久化volumeMounts pod里面&#xff1a;emptyDir和hostPath。存储在node&#xff0c;NFS...&#xff0c;Clo…