精华内容
下载资源
问答
  • 也许很多人不理解为什么Microsoft使用C ++而不是自己的C#编写Windows?其实原因来说也算很简单吧,首先Windows是在定义C#语言之前很久才开发的。即使当时可用,C#也不是用于实现操作系统的适当语言。Windows桌面...

    也许很多人不理解为什么Microsoft使用C ++而不是自己的C#编写Windows?其实原因来说也算很简单吧,首先Windows是在定义C#语言之前很久才开发的。即使当时可用,C#也不是用于实现操作系统的适当语言。

    a029b356050a46db3bd89931dc851ca3.png

    Windows桌面和服务器操作系统的现代版本的代码库始于1988年的NT项目,当时新的32位抢占式多任务操作系统的代码从零开始。选择的编程语言主要是C,其中一些C ++用于GUI组件,以及一些汇编语言。基于此代码的操作系统于1993年首次发布,并带有Windows NT Workstation和Windows NT Server的第一个版本。NT和2000的所有版本都基于此代码,Window Server的所有版本(1993年至今)以及从Windows XP开始的所有桌面Windows版本(2001年至今)都基于此代码。

    80c5100a3ba6d9371e0386ef59ef2f38.png

    Windows随附的某些更高版本的用户模式应用程序已用C#实现,但大多数系统仍使用C和C ++,并带有一些汇编语言。

    在Windows NT项目启动十二年后的2000年之前,还没有完全定义C#语言。(严格来说,NT项目最初是NT OS / 2,但是当16位Windows 3进入市场时,该项目转移到了以Windows为中心的焦点。)

    C#通常不会编译为本机代码。它被翻译为中间CIL语言,然后在执行程序时进行解释和或及时编译。这种语言以及其他类似语言并不真正适合于实现操作系统,因为这些操作系统需要直接在硬件上运行,管理页表,管理中断等。C和C ++通常可编译为高度优化的本机不需要运行时解释器或即时编译器的代码,更适合于实现操作系统。C#从未被设计为系统编程语言。在开发用户模式应用程序和服务时,它的重点更多地放在安全性和生产率上。

    63e006cd853d9a225643c2c7b75acddf.png

    顺便说一句。NET Framework支持C#和其他语言,一部分以C#实现,一部分以C和C ++实现。它调用Windows操作系统提供的API。

    即使今天有一个C#编译器生成的高度优化的本机代码,但回过头去重写一个大型项目却只是为了使其成为一种更新的编程语言,几乎没有任何意义。由于有成千上万的代码行需要重写和完全重新测试,因此成本和风险都很高,收益几乎为零。做这样的事情还没有商业案例。只要现有语言得到完全支持并提供了出色的工具,实际上就没有理由用“较新的”语言重写代码。

    e13c42537dd795b3822e5f6999a4705b.png

    最后,Microsoft从1975年的第一天起就从事编程语言业务。多年来,它的主要业务是为各种基于微处理器的系统开发编程语言解释器,编译器和汇编器。自1980年代以来,他们拥有自己的C和C ++编译器以及其他语言(例如BASIC,FORTRAN等)。他们的C和C ++编译器非常稳定和成熟,并且会不断发展,从而生成高度优化的机器代码。

    d58f915b3a48921b0aa2b64263e5debf.png

    也许很多人会怀疑我是机翻,然后呢,我想给大家说下,因为也会去看外国的一些文章,而这篇里面有些理解是一位曾在Microsoft的Windows NT组工作的一位人员。所以很多时候,因为我自己的原因,翻译的不好,所以还希望大家见谅。谢谢大家。

    然后想学习交流C/C++的可以看下图呀:

    ffd14ec1db31e096a2084533ebb6b4e1.gif
    展开全文
  • 注:本文转载自微信号:iProgrammer2013 年 10 月,我们在微博(@程序员的那些事 )发过一张信息图《知名软件系统代码对比》。信息图中提到,Windows XP 和 Windows 7 操作系统的代码量约 4 千万行级别。(信息图部分...

    注:本文转载自微信号:iProgrammer

    2013 年 10 月,我们在微博(@程序员的那些事 )发过一张信息图《知名软件系统代码库对比》。

    信息图中提到,Windows XP 和 Windows 7 操作系统的代码量约 4 千万行级别。

    b1188cc83d9dfde21c50d14d3844edfc.png

    (信息图部分截图,完整版在这里:http://t.cn/EXMs07e )

    Windows Vista 源码体量约 5 千万行。

    d3acdc0c9919aa5acdb14bc171f52628.png

    所以,Windows 10 源码体量至少在 5 千万行咯。

    Windows 操作系统是用什么编程语言开发的?

    Windows 操作系统这么个量级的代码库,用了哪些/哪种编程语言,肯定有人好奇。

    这不,就有人在 Quora 发帖问《开发 Windows 10 用了哪种编程语言?》

    2019 年 3 月,微软内核工程师 Axel Rietschin 在 Quora 上回复了这个帖子。

    bc563aa3b3ae1f073285231fa13d95f3.png

    「程序员的那些事」摘编如下:

    Axel 说,Windows 10 和 Windows 8.x、7、Vista、XP、2000 和 NT 有着相同的代码库,每一代操作系统都经历了重大的重构,添加了大量的新特性,改进了性能、硬件支持和安全性,同时保持了非常高的向后兼容性。

    内核(ntoskrnl.exe)大部分是用 C 语言编写的。在 Github 可以找到 Windows Research Kernel 的泄露版。

    983f81972947eb0dc069853973dcf296.png

    有兴趣的童鞋可以看看:github.com/markjandrews/wrk-v1.2

    Axel 表示,虽然 WRK 代码已经过时了,而且很大程度上还不完整,但那些代码应该会给大家一些深刻的见解。

    比如:wrk-v1.2/base/ntos/config 目录下是大家熟知的注册表(Registry)的源码,这个内核组件就是配置管理器(configuration manager,CM)。

    在内核模式下运行的大多数程序,也是用 C 语言编写的(大多数文件系统、网络、大多数驱动程序……),还有一些 C++。

    至于 Window 10 是用什么编程语言写的,Axel 认为是 C 和 C++,并且 C 占了绝大部分。

    .NET BCL 和其他托管库及框架通常都是用 C# 编写的,来自不同的部门(开发者部门),并且也不属于 Windows 源代码树。相比散落着 C++ 岛屿的 C 代码海洋,C# 写的代码简直就是沧海一粟。

    Windows 真的真的真的真的真的很大

    Axel 提示大家,大多数人没有意识到 Windows 系统的庞大,真一个具有史诗规模的巨大项目。

    Windows 的完整源代码树(包括全部代码、测试代码等)的大小超过 0.5 TB,涉及 56 多万个文件夹,400 多万个文件。

    f057e655befc200d80b47c6badf4167e.png

    你可以花一年时间深入源代码树,钻入到那些文件中。它们包括了所有组成 OS 工作站和服务器产品,及其所有版本,工具,相关的开发包。

    然后你再读文件名,看看里面有什么,它们是用来做什么的。想做完这些事,一个人(或两个人)恐怕要穷尽一生咯。

    有一次 Axel 离开 Git 分支几周,他回来时发现落后了近 6 万次提交。Axel 想有人会说,没人可以每天把添加到 Windows 的所有代码都看完,更不用说去读过去 30 年来编写的代码了!

    展开全文
  • Windows C++界面

    万次阅读 2017-02-14 23:31:19
    记得大一学C语言的时候,觉得黑白窗很无聊,后来在网上找到了EasyX (一个模仿turbo c的图形)http://www.easyx.cn ,它写一些贪吃蛇、扫雷这类图形界面的游戏来练手。 当时学的时候就很好奇为什么调用这些...

    记得大一学C语言的时候,觉得黑白窗很无聊,后来在网上找到了EasyX (一个模仿turbo c的图形库)http://www.easyx.cn ,用它写一些贪吃蛇、扫雷这类有图形界面的游戏来练手。 当时学的时候就很好奇为什么调用这些函数就能绘制图形,后来从网上了解到了Windows编程,于是从淘宝淘了本《Windows程序设计》看了起来,当时看的时候还有点吃力。
    趁着大一结束后的那次暑假我看完了王爽老师编写的《汇编语言》,对计算机内存、CPU等底层方面的知识有了更深一层对的了解后,才重新拾起《Windows程序设计》。当时大二也开始学C++了,还记得“亮欧巴”教完谭浩强写的C++,还不能真正理解面向对象的意义,我在直接用Win32API写窗口程序的时候也感觉到要做很多重复工作,写很多模板代码(但当时自己完全不知道怎么用C++去封装Win32API),于是在网上找了些资料,还记得有一位大神出的视频里面讲了MFC的封装原理后,我自己才试着封装了Win32API(当然没使用MFC的消息映射机制,直接用了C++的虚函数多态),之后才明白C++的诞生是计算机工业发展的必然。学完后立马花了2个多月的时间写了个浏览器(为了应付学校的考试,也为了寒假回家过个好年,无奈拖长战线),当然网页显示直接使用MFC封装好的CHtmlView,这其中80%的时间都花在写界面上,当时还不知道开源社区有封装好的MFC控件,也不知道有CBitmapButton这类东西,完全自己封装,最终写出来的界面还贼TM丑,其实这也归结于当时不会PS,搞得后来很多功能都不愿完善了。

    当时写的浏览器


    最终我在网上了解到DirectUI这项技术,虽然微软没有为开发者提供技术支持,但网上的总有一大批大牛人物敢于挑战。
    下面我以开源与否列举几个知名的。

    开源界面库

    DuiLib

    首先要说的就是大名鼎鼎的DuiLib,国内很多大小公司都在使用该界面库,比如华为网盘,腾讯微信,百度杀毒 and so on。。。这个库是借鉴了国外的大牛Bjarke Viksoe写的Windowless库。据说DuiLib是国内第一个开源的DirectUI界面库,有很多界面库也是基于DuiLib二次开发的。随着时间的洗礼,很多其他界面库都慢慢销声匿迹了,DuiLib算是活的最好的。下面是我以前写过的几个小程序。
    模仿EclipseInstaller写的EclipseSelector
    MediaPlayer

    RingSdk

    这是国内的前辈自己写的类库,这里给出前辈对RingSdk的介绍http://blog.csdn.net/ringphone/article/details/2911244

    金山界面库BKWin

    这是金山公司开源的一款界面库,相对个人维护的界面库而言,是更可靠的。
    相关链接:http://code.ijinshan.com/index.html

    上面三个界面库可以说是国内最知名的开源界面库,其他很多界面库都是来源于这三个界面库(有些库只是将名字改改,就自立一派,( ﹁ ﹁ ) ~→真不想吐槽天朝的盗版能力)


    商业库

    UIPower

    老贵的一款商业界面库,但听说产品确实不错,也有很多知名企业使用他们的界面库,比如:招商银行,瑞星杀毒,农业银行,中信证券… 前期华为网盘也是使用这个界面。貌似还能跨平台(用不起,也就无法考证),公司老总还亲自出了一系列相关视频,上个月阙总还到DuiLib交流群宣传他们公司的产品,O(∩_∩)O~~。
    公司官网:http://www.uipower.com

    迅雷Bolt

    Bolt界面引擎是迅雷公司从2009年开始开发的第四代界面库。迅雷7是首个采用该引擎成功开发的产品,目前迅雷旗下大部分客户端产品都基于该引擎开发,并稳定运行于超过3.5亿台PC上。
    文档方面也比较齐全,唯一的遗憾是闭源。
    http://bolt.xunlei.com/

    Skin++

    貌似是UIPower之前的产品,最近也没什么动态了。

    LibUIDK

    LibUIDK是国际上顶尖的专业开发Windows平台下图形用户界面的开发包,也是国内第一款商业的高级界面开发工具。该开发包基于Microsoft的MFC库。使用此开发工具包可轻易把美工制作的精美界面用Visual C++实现,由于LibUIDK采用所见即所得的方式创建产品界面,所以极大的提高了产品的开发速度,并大大增强图形用户界面(GUI)的亲和力。LibUIDK还可以使您的软件轻松具有当今流行的换肤功能,以提高产品的竞争力。

    Flash4UI

    Flash4UI 可以让普通的C++应用程序使用flash作为UI,从而使UI开发变的极其轻松。
    通过flash的超炫效果,可以使软件提升几个档次。
    不过Flash技术日渐甚微,这或许也不是最好的选择。

    clayui

    现在支持的系统包括android,windows,wince,linux。clayui的特点是能实现各种2D,3D动画,一些WPF,FLEX才能实现的界面效果,通过clayui可以很方便的实现。
    clayui的底层渲染支持纯软件渲染,d3d,opengl es硬件加速渲染,您可以根据自身的需求选择合适的渲染方式,使您界面的用户体验达到最佳效果。
    clayui自带的界面编辑系统使您可以很容易的创建界面布局,编辑各种动画效果,彻底实现界面与逻辑的分离,您可以很容易的实现动态换肤,动态换布局,动态更换动画效果。

    DSkinLite

    DSkinLite界面库如其名称“lite”一样,是一款轻量级的C++界面库。未使用复杂的Hook操作,仅使用替换窗口过程的方式(SubclassWindow)来处理控件界面绘制。使用XML文件管理GDI资源如颜色,字体,图片,并描述界面构成, 同时UIEASY首次创造性的将界面构成元素抽象为线条元素,矩形元素,图片元素,文本元素,并提供相应规则来使用这些元素“组合” 界面。这极大的提高了界面库产品的灵活性,使得界面库产品可以随意构造出多种多样的控件界面。
    官网:http://www.uieasy.cn/

    codejock

    国外的一个提供MFC控件,COM组件技术支持的公司,这个公司提供很多界面方面的支持。三星,惠普,eBay,福特等国际公司都和他有过合作。
    http://www.codejock.com

    魔方界面库

    不知道跟软媒有什么关系,看软媒魔方的界面像是用了这个库。
    http://www.muilib.com/

    展开全文
  • 首先是个什么东东额,有什么作用? 官方说法:中都有一组实现好的函数接口,就是一些函数接口封装成,方便调用 民间说法:我就是不让你看,咋的,保密,核心,保密...你就可以了塞! 好了linux 下的...

    首先库是个什么东东额,有什么作用?

    官方说法:库中都有一组实现好的函数接口,就是一些函数接口封装成库,方便调用

    民间说法:我就是不让你看,咋的,保密,核心,保密...你用就可以了塞!

    好了linux 下库的生成请看https://www.cnblogs.com/bwbfight/p/9262968.html,比较详细

    传说中windows的库怎么生成的呢?

    打开vs ,可以看到

     

    生成的项目选择DLL,便可!

      编译后生成的文件,有三个个文件比较重要

        msgreal.dll(动态库文件)

        msgreal.lib(动态库描述文件)

        msgreal.h(头文件)

    当然前提还需要首先

    1.选择需要生成库的函数文件:
      在需要导出的函数前面需要加_declspec(dllexport),即,动态库dll需要在所输出的“对象”前添加_declspec(dllexport)声明。

      头文件和实现函数可能都需要加!
    对于库的使用
    ,除了需要包含对应的头文件,静态库需要在文件中添加#prama comment(lib,"cof.lib")

    或者在有以下几种情况:

    1) 相同解决方案下,可在属性面板“框架与引用”添加静态库工程,并”c++”中添加include file即可

    2) 在“link”的附加依赖项添加库的目录,在“输入”中使用添加cof.lib(与pragma同)

      即在项目上右键--》属性-》链接器-》输入

    即可!

     

     

     

     

    拷贝msgreal.dll到代码目录,代码编译执行时有效

    生成exe如果执行又弹出,请安装msgreal.dll ,如何解决->拷贝一个msgreal.dll到exe目录即可!

    如果C:\Windows\SysWOW64和exe目录都有一个my1.dll

    windows操作系统可能会先执行C:\Windows\SysWOW64\my1.dll,而不执行exe目录下的my1.dll,而如果C:\Windows\SysWOW64\my1.dll又是旧的版本,就可能出现问题,切记切记!

     

    转载于:https://www.cnblogs.com/bwbfight/p/9640101.html

    展开全文
  • 以下是作者的一些猜想:   1. 我们在VC编程时,会在执行我们的main函数前,系统先通过Kernel32调用一些函数,执行一些C的初始化准备工作,我们...我认为,C运行时,在windows程序执行的时候,其实可以没有,也就
  • 大家一概认为window7与windowXP相比除了界面好看和耗硬件以外好像没有什么值得称赞的,持这种看法人还真不在少数,其实大家的认识真的是偏之甚远,我想这大抵应该跟我们这些IT人的普及推广一定的关系吧,所以本...
  • 网络服务的协议,即用什么网络协议开放客户端接入。2>.业务服务的协议,即声明服务提供哪些业务。3>.数据类型声明,即对客户端与服务器端通信的数据部分进行一致化。4>.传输安全性相关的定义。它是.NET框架的一部分...
  • 答:操作系统没有编译环境,...解决方法:此时可以去UCI页面,www.lfd.uci.edu/~gohlke/pythonlibs/(加州大学欧文分校的教授维护的windows系统支持的)下载相关已编译的版本,然后pip install 加上下载路径的文件。...
  • 1、把一些相关的代码,打包成一个,发布给其它的人。 这中情况是最常见的情况,如写 C 语言用到 libgcc。在这种情况下,你除了提供文件: 静态[ windows 下 .lib,linux .a];动态:[Windows 下 .dll,...
  • 既然问题问的是 iOS,并且是和 Windows 做对比。那么就是操作系统层次的内存管理,而不是应用程序层次的堆...在 Windows 上的 Objective-C(虽然的很少)也是引用计数的。引用计数和语言和有关,和操作系统无关。
  • 我现在想修改vlc的ffmpeg,就是我有个新的ffmpeg版本,编译完后想替换vlc本来的ffmpeg,再编译vlc,使其具有新特性,请问大牛们有什么好的办法。 编译vlc是参考的海狗哥的文档,higoge.github.io/2015/07/16/sm01/...
  • python学习日记:splinter中的...这里的Windows操作,只是写了几行代码,为了搞清楚这些操作都有什么用我进行了一遍又一遍的尝试,最后总结出了如下结论。 首先对于前几行 browser.windows # all open windows brows
  • stdafx.h有什么用

    2012-05-07 11:12:00
    转自:stdafx.h到底有什么用? 首先向其致敬。 stdafx的全称应该叫做,Standard Application Fram Extend .你会发现他里面没有函数,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下...
  • 安装到自定义路径,有些中间过程询问是否添加到环境变量,根据实际选择就好。 然后在安装目录下拥有了一些文件夹。 这里的sources是源码,不到的话可自行删除。 build下的文件如图所示。 2 环境变量添加 ...
  • python一个很强大的地方就是具有...然而还是有些第三方pycharm安装不了,不知道为什么。现在要用到scipy,直接pycharm安装会失败,details出现一大堆看不懂的英文。只好Google。虽然这些第三方官方网站,
  • 前言 我一直做的Windows客户端这块东西,不过现在换了个工作,转用C#开发...Qt C++开发我经常要编译工具,因为时候不仅是编译器不同,时候版本不同也是不能直接使用的,所以就需要拿到源码重新编译,获取到适...
  • 什么

    2014-04-17 15:30:00
    (library)是函数的简称。每个至少一个的头文件,和一个文件。文件中是目标代码状态的函数,而...Windows的人应该知道一种叫DLL的文件,那就是Windows上的动态,DLL是Dynamic linkLibrary(...
  • 最近手头没什么工作,突然对音视频产生了一些兴趣,便看了一些音视频的博客,发现一块很重要的内容就是FFmpeg,所以便从编译开始,一开始以为编译这种事会很简单,没想到编译了大半天都没有我想要的so,最后换了...
  • 其实这是一个很没有的操作,为什么这么说呢?因为只要是Android开发的程序员都知道,windows只是一个开发平台(当然也mac),开发的apk的运行平台是android手机,和windows没有了半毛钱关系。虽然没有,但是...
  • 【单选题】sklearn实现KNN算法... 在Windows中,硬盘可采用的文件系统格式【单选题】19-55.在 Windows控制面板中,下列无法实现的操作是【多选题】sklearn可以进行的机器学习算法哪些?【单选题】witness的元素属性...
  •  之前在linux下做过一个测试: 写一个so,该so中一个全局变量。so中的代码在运行时会修改该全局变量的值。然后,多个程序都需要该so,而且这些应用程序都...现在知道原理了,尽管这是windows via C/C++中解
  • .dll文件有什么用

    2012-05-07 15:41:00
    DLL文件即动态链接文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。 DLL多数情况下是带...
  • 先讲讲本地git仓库有什么用。 最重要的一点就是管理码号的代码的版本。 这时候问题来了,我代码工作量也不是很大,我要这么多版本干啥用呢,写错了我还能ctrl - z ,麻烦的时候大不了多摁几下。为什么要大动干戈地...
  • 现在windows mobile系统虽然开始渐渐淡出人们的视线,我现在也转到android上了,可是做了这么些年windows mobile开发总觉得要留下点什么,所以开始写点这方面的博客留个纪念,其实是把以前的东西重新整理回顾一下。...
  • 什么什么开源好的狗日的,尼玛种先搞定编译啊卧槽!!!!!!!!! 是的!!!!!你可以吐槽老子智商低弱智煞笔Windows系统所以才那么难编译,Linux/MacOS底下可以各种完美编译卧槽,尼玛你...
  • ①DLL文件是怎么产生的 许多应用程序被分割成一些相对独立的...在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接,即DLL文件,放置于系统中。当我们执行某一个程序时,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,089
精华内容 435
关键字:

windows库有什么用