三个叛逆的微软程序员,创造了一项伟大的技术,彻底颠覆了游戏行业!

【连载】穿越计算机的迷雾——读书笔记 穿越计算机的迷雾 中国设计的第一台计算机:119机; 每秒钟运算5万次,是用“电子管”做的,被称为“第一代计算机”,是最早的技术。后来发展出的第二代计算机,是用晶体管做的,然后发展到第三代计算机,是用集成电路做的,最后发展到第四代计算机,就是用大规模集成电路做的。 沿着这条路径,计算机发展和集成电路的发展融合起来了。 集成电路是计算机的核心技术,是计算机的载体,是计算机的主要成分,集成电路的发展决定着计算机的未来。 第一台电子计算机的诞生使信息处理数字化、自动化,随后,利用电子计算机的技术原理,人类. 阅读详情

1995年,微软发布了大名鼎鼎的操作系统Windows 95。

全新的图形化界面,即插即用的功能,便捷的操作,32位抢占式多任务系统,让Windows 95成为个人电脑历史上最重要的产品之一。

45c64f89109d50537519296cbeca4342.png

伴随着10亿美元的营销活动,Windows 95在全世界都引发了轰动,掀起了抢购的热潮。

但是,有一个群体一直在冷眼旁观,他们坚决不愿意把自己的软件移植到Windows95上。

他们就是游戏开发商,他们在前一年发布了无数经典的PC游戏:《Descent》、《DOOM II》、《Heretic》、《Jazz Jackrabbit》、《System Shock》、《UFO:未知敌人》和《魔兽世界:兽人与人类》,只不过,这些游戏统统运行在MS-DOS上。

678505462d4cd0b6def9582151936814.png

为什么游戏厂商要抛弃Windows平台呢?

01

曼哈顿项目

虽然MS-DOS只支持单任务,但是相比Windows它有个明显的优势:游戏开发者可以直接访问硬件(如显卡、键盘、鼠标、声卡等),游戏可以充分利用硬件的性能,创造出复杂的图形和声音效果。

而“可恶的”Windows,为了强调稳定性和多任务,竟然阻止游戏开发者直接访问硬件,必须通过Windows API才能访问,这一下子就拉低了游戏性能。

所以,很多游戏开发者对Windows望而却步。

当时的微软考虑到了游戏厂商的需求,也提供了一个叫做WinG的图形引擎,但这个引擎非常烂,迪斯尼用它开发了Windows版的《狮子王》,结果频繁蓝屏,愤怒的家长都快把迪斯尼的热线电话打爆了。

无数游戏玩家都在期待在Windows上玩游戏,但是他们都失望了。

Alex St. John决心改变这个状况,他认为:想让Windows成为主流,必须要围绕游戏构建,让人们玩起来。

ced864c02fdd93160ce71f4675a3a5d5.jpeg

自从加入微软开始,John就以反传统著名,他叛逆和傲慢多次激怒比尔盖茨,好几次差点儿把他解雇。

John在公司内找到了“臭味相投”的Craig Eisler和Eric Engstrom,三人的特点都是会公开蔑视那些不同意他们想法的同事,这种做派被很多同事讨厌。

三人组成了“野兽男孩”小组,开始了一个代号“曼哈顿”的项目,计划开发一个新的软件包,帮助游戏厂商充分利用Windows。

他们并没有得到微软内部的支持,公司管理层认为Windows 95成为游戏平台的可能性很低。但是“野兽男孩”三人组可不管这些,他们决心强力推进:

DOS不是能直接访问硬件吗?那用我这个软件包也能绕过操作系统,把Windows推到一边,清除所有与游戏争夺资源的垃圾,让游戏运行。

软件包许多功能会关闭 Win图形系统,让游戏可以与视频硬件直接对话:

阻止 Windows 将内存分页到硬盘,以便游戏可以以恒定的帧速率运行;

绕过 Windows 消息队列,以便您可以获得实时鼠标输入。

......

这样你就可以真正控制像 Doom 这样的第一人称射击游戏。

在 ATI 等显卡制造商的支持下,新的软件包很快就开发出来:

- DirectDraw:负责2D图形绘制。

- Direct3D:用于处理3D图形。

- DirectSound:用于处理声音。

- DirectInput:用于处理输入设备(如键盘、鼠标、游戏手柄等)。

- DirectPlay:用于处理网络多人游戏。

这些 API 背后的命名理念是允许游戏“直接”访问硬件,在游戏运行时尽量减少 Windows 操作系统的干扰。

当时有一位记者嘲笑了这种命名惯例,把它们称为“DirectX”。

John团队很喜欢这个名称,DirectX一直沿用至今。

因为项目代号“曼哈顿”,和多年前的核武器计划名称一样,最早的DirectX Logo 是这样的,有种核辐射的感觉。

cc2d0fceaff7260f6ac6b48f1f51d8ca.png

02

样板工程

微软拥有了DirectX,接下来就是吸引游戏厂商来使用它。

微软先盯上了id Software,这个只有10几个人的团队开发的《DOOM》在全球极其流行,安装量竟然超过了Windows,Bill Gates一度都想把它收购了。

bf6d48ba5206ecafdf18733915f31e09.png

微软联系了id Software的负责人,也是传奇程序员John Carmack,提出了一个他无法拒绝的条件:

由微软免费将DOS版本的《DOOM》和《DOOM II》移植到Windows,不用id Software出一分钱,将来游戏发行赚的钱也全部归id Software。

在微软的历史上,做出这样“卑微”的举动,是非常少见的。

既然John Carmack可以坐享其成,就把游戏的源码给了微软。

712a6dca771aeb277b3abaae09171090.png

移植的工作由加布·纽维尔负责,这也是一位超级大牛,1996年离开微软后创办了Valve,开发了《半条命》,又领导了Steam平台的开发。

c6a02caae7659af53fe86541c2dbd798.png

1996年8月20日,DOOM95正式发布,成为第一款DirectX游戏。

它不仅在Windows上运行效果出众,在多个方面都优于其原始的DOS版本,它能以“高达”640x480 的分辨率渲染游戏,支持 24 个音频通道,并通过图形用户界面简化了多人游戏设置。

ad984a22aca9244ba3c2a90cb9bc0976.png

微软把DOOM95作为宣传Windows的关键资料,比尔盖茨也参与其中,他录制了一段视频,穿着风衣,拿着猎枪,在DOOM的世界里一边开枪杀死各种怪物,一边推销Windows和DirectX。

微软的意思很明确:最牛的游戏都登录Windows平台了,你们在等什么呢?

e58f7f30de54bc2ad516d967e6291a33.png

(画质有点渣,找不到高清版,大家将就着看...)

03

争霸之路

但这个时候,大家对DirectX的评价并不高。

虽然DOOM移植成功,但John Carmack一直认为,DirectX是个糟糕的API,“它给使用它的程序员带来了巨大的痛苦和折磨,却没有带来任何显著的优势。”

大家更喜欢另外一个图形API,也是市场的霸主,OpenGL。

40dbd813e0d928f66807992b9e3f05b8.png

OpenGL起源于SGI,这家公司知道的人不多了,当年它可是3D图形工作站的领导者,著名的《侏罗纪公园》就是使用SGI的高端工作站渲染的。

258103a3fd4bd846e38cd0695fb150b1.png

SGI在图形这一块的实力非常强悍,为了进一步占据市场,SGI把自己的图形API(IRIS GL)做成了开放标准,即OpenGL。

OpenGL有个架构评审委员会,ARB(Architecture Review Board),这里边包括IBM,Intel,Apple,ATI,Nvidia,Sun 等巨头。

有巨头撑腰,在整个90年代,OpenGL人气极盛,尤其是id Software使用 OpenGL 开发的的 Quake Engine ,达到了极为惊人的绘制效果。

06ce46b477b4f6c04c405612dd82ac00.png

这也激励着ATI、Nvidia等显卡制造商,必须完整地支持OpenGL,才能满足开发者和玩家的期望。

软件和硬件互相“激励”,达成了螺旋上升的正向循环,可以说是势不可挡。

这时候微软的DirectX杀了进来,它该如何破局呢?

快速迭代!

OpenGL是个开放标准,每次API标准的发展,都要受到到各个软硬件厂商的拉扯,大家为了自己的利益迟迟无法达成共识。

微软虽然也比较官僚,但仅仅需要与 ATI 以及 Nvidia 两家公司合作制定DirectX 的 API 规格,并且拥有最终的关键裁量权,可以快速迭代,快速发展。

就这样,DirectX虽然一直落后,但就像一个打不死的小强,韧性十足,一点点改进,终于赶了上来。

b6cd1142cb820d4be1dedee2eb1c75e2.png

2001年发布的DirectX 8成了整个战役的转折点,这个版本引入了两个极为重要的创新:Vertex Shader(顶点着色器) 以及 Pixel Shader(像素着色器),赋予开发者在顶点和像素处理上的完全控制权,推动了 3D 游戏画质和性能的快速提升。

而DirectX 9 的推出,更是让微软取了决定性的胜利,大部分游戏开发者都开始使用DirectX。

到了2011年,就连John Carmack也认为:DirectX比OpenGL更好了。

虽然OpenGL在PC的竞争上落败,但是它的嵌入式版本Open GL ES却抓住了移动互联网的浪潮,被Android 和 iOS采用,随着手机的普及,成为历史上部署最广泛的 3D图形 API。(后来Apple另起炉灶,推出了自家的Metal,OpenGL ES也进化为Vulkan,那是另外一个故事了)。

38cf1cdfa0db79cd6f5513becedad34d.png

04

小结

在微软帝国的发展历史上,它多次利用操作系统的优势来击败竞争对手,Office之战、IDE/编译器之战、浏览器之战都是如此。

但是DirectX是微软少见的,主要靠自己一刀一枪打下江山的产品,它不但把游戏厂商从MS-DOS迁移到Windows平台,更是击败了霸主OpenGL,这是很难得的。

不过,由于微软错失了移动互联网,DirectX也主要用于Windows和XBox平台,没法扩展到手机端了。真是应了那句古话:世事难料啊!

全文完,觉得不错的话点个赞或者在看吧!

近期爆文:

1970年以来技术的发展趋势,怪不得程序员35岁就被裁......

这个大学生写了个免费软件,全世界网民抢着给他送钱,每月10万美元

全世界流浪的程序员,用最原始的技术,每月赚17.6万美元!

开源软件的叛徒,加入了微软

Chrome背后最大的秘密:印度人拯救了Google!

这两个程序员要花100万,彻底重写世界上最复杂的软件

造福无数打工人,世界第7大网站,为什么过得如此卑微

被哈佛扫地出门,他发明了让无数程序员痛不欲生的编程语言,获得了计算机最高奖!

这两个大龄程序员,打算搞垮一个世界软件巨头!

世界上最大的盗版网站,遇到麻烦了!

这个女生写的软件,解决了无数程序员最头疼的问题!

写出Windows操作系统内核的程序员,70多岁,还去办公室敲代码 我理解的意思就是,敲代码之前要先想清楚,比如说脑海中有一副蓝图,或者敲完代码自己要先做一次 review,现在有了 AI 的帮助,那最好让 AI 再检测一遍,这样就不会引入 bug,也就不用解决 bug。2006 年,当微软开始向云端进军的时候,亟需构建一个基于云端的操作系统,于是又招募了即将退休的卡特勒,部门负责人 Amitabh Srivastava 用一句“按照卡特勒的意思就是,现如今的 Windows 操作系统版本,不管界面怎么变,内核代码都可以追溯到 1993 年的 Windows NT 分支。 阅读详情

相关推荐

《穿越计算机的迷雾(第二版)》笔记.md

这是《穿越计算机的迷雾(第二版)》的笔记,在原书的基础上进一步整理,重新编排目录,结构更加清晰,内容系统全面,即使没有读过原书也能够对书本内容有一个大致的了解。

《穿越计算机的迷雾》

穿越计算机的迷雾笔记,计算机理论基础知识学习

lue0113的博客 1435

PCIe Electrical PHY(4)-PCIE SPEC第8章指标讲解

1.1 PCIE TX SPEC TX主要关心两类参数,一类是Voltage Parameters,一类是Jitter Parameters。 其中Voltage相关参数主要关心不同preset下差分电压幅度的准确性。以及共模电压的稳定性。 PCIE spec中对Jitter相关的参数测量定义如下: 分为两大类:DDJ(Data dependent Jitter)和UJ(Uncorrelated ...

maxwell2ic的博客 5951

穿越计算机的迷雾笔记

穿越计算机的迷雾笔记

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 685

dos攻击 --hping3

dos使用hping3攻击

qq_65880213的博客 2747

从零开始掌握Python机器学习:七步教程 基础篇

前言 「开始」往往是最难的,尤其是当选择太多的时候,一个人往往很难下定决定做出选择。本教程的目的是帮助几乎没有 Python 机器学习背景的新手成长为知识渊博的实践者,而且这个过程中仅需要使用免费的材料和资源即可。 第一步:基本 Python 技能 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。 首先,你需要安装 Python。因为我们后...

hcgx2018的博客 1613

《穿越计算机的迷雾》 李忠 (确实写得非常好,赞一个)

前段时间购买的《穿越计算机的迷雾》到手了, 最近抽空看完了, 看得比较过瘾。 作者李忠以闲谈的语调, 基本把计算机的大致原理讲清了, 而且, 基本是站在读者角度考虑的, 简单易懂, 逻辑基本是源于生活常识和初中的那点电学知识。 看国内的一某些书, 很多完全是照搬文字, 不说人话, 要么做成手册, 干干瘪瘪, 没有真正用心去写, 国内乌鸦一般黑。 ...

认知 行动 坚持 1万+

AI Agent开发第85课-DeepSeek-OCR 安装全指南:从 Transformers 到 vLLM,手把手教你跑通企业级 OCR

本文系统讲解 DeepSeek-OCR 的两种部署方式——基于 Hugging Face Transformers 的标准推理与基于 vLLM 的高性能加速推理。详细说明 CUDA 与 PyTorch 版本匹配、环境验证、依赖安装等关键细节,并提供可直接运行的完整代码示例。无论你是单卡调试还是高并发服务部署,都能在这里找到清晰路径。

打造全国最全的AI Agent开发知识领域的博客 2542

穿越计算机迷雾

首先,这是一本书,大概20-30块钱,还算便宜,口碑也不错 其实我也不喜欢就是看书,看书完全是因为有些知识确实看不懂了,难以理解,我看这本书的时候,就是因为看不懂 java的一个框架的运行原理,其实不需要看这么深入的,但是不知不觉的就看了。 促使立即看这本书的原因是:我在今日头条上看见一个问题,JAVA面试官,问int占多少个字节。 然后下面好多程序员都在讨论了 有说这个问题都不知...

chuxin_mm的博客 768

安卓手机部署酒馆 SillyTavern 全攻略(Termux 本地安装教程)

本文详细介绍了如何在安卓手机上通过 Termux 环境本地部署 SillyTavern,一个功能丰富的角色扮演对话 AI。步骤包括安装 Termux、Git,克隆 SillyTavern 仓库,安装 Node.js 和依赖,启动 SillyTavern,以及可选的高阶玩法——安装 TAI-Extras 扩展模块。文章还提供了常见问题的解决方案和优化技巧,如更新 SillyTavern、处理报错、文件访问、添加快捷命令和禁用安卓后台进程杀死。通过本教程,用户可以在安卓手机上体验本地部署的 AI 对话,享受更高

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

AUTOSAR内存篇 -内存驱动(Mem)

Mem驱动程序的task是基于底层内存设备技术的物理分段的低级内存访问。Mem驱动程序的API与内存设备技术无关,因此向存储器访问模块上层提供了与存储器设备无关的接口。所有高级功能(如跨段操作)都由内存访问模块处理,以尽可能降低Mem驱动器的复杂性和占用空间。Mem驱动API命名、类型定义和文件命名规则都遵循标准的AUTUSAR BSW模块实现。服务Mem_Init初始化Mem驱动的内部状态,并设置Mem驱动Job处理状态到MEM_JOB_OK。

IOT2017的博客 713

宫本茂的童心和乔布斯的叛逆--设计哲学背后的文化基因 (发表于程序员杂志08年第二期)

 任天堂的掌上游戏机NDSL里有一个叫《吉娃娃》的养狗游戏,让我这个对真狗兴趣不大的人忽然有了对宠物的兴趣。用笔可以以不同的手法去抚摸狗,不同的抚摸方式,会让那条狗作出各种可爱的动作,通过语音识别技术,我可以给狗起名字,并用说话来训练狗“坐下,站起来”等各种动作,继续这个过程,还可以训练狗参加各种比赛,小狗有个肥皂泡的玩具,需要玩家用嘴吹,把泡泡吹给屏幕里的狗狗。这个游戏还有一个“叫叫模式

刘松的专栏 3935

数据结构课程设计--基于知识图谱的中医食疗数据管理与应用

【代码】数据结构课程设计--基于知识图谱的中医食疗数据管理与应用。

M_inherit的博客 567

3D游戏之父——约翰卡马克

如果你问比尔.盖茨,“你最欣赏的程序员有哪些?”,在他的回答中,肯定会出现John Carmack(卡马克)的名字。没错,John Carmack 在程序员中的崇拜程度,甚至到了无以为加的地步, 他设计出了游戏史上最强大的3D引擎,30岁时就步入了美国互动艺术设计名人堂。微软在很多问题都非常尊重他的意见,甚至展示Windows 95 多媒体应用的3D演示程序就是使用他设计的引擎。另外他还是个超级游

冷剑魂的专栏——垃圾场 4670

ConvNeXt 系列改进:二次创新 ConvNeXt:结合 RepVGG 结构重参数化,训练多分支、推理单路

2026年的视觉模型赛道呈现出一种有趣的“返璞归真”趋势——在Transformer狂飙数年之后,卷积网络正以全新的姿态回归。这其中,ConvNeXt无疑是纯卷积阵营中最耀眼的明星。从2022年Meta AI首次提出至今,ConvNeXt系列已经走过了近四年的演进之路,衍生出ConvNeXt V2、E-ConvNeXt等多个增强版本。ConvNeXt的7×7深度卷积带来了不错的感受野,却也埋下了推理效率的隐患。

ZXSXJ的博客 234

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

3D游戏之父 电玩游戏奇才约翰·卡马克

约翰·D·卡马克二世(John D. Carmack II,1970年8月20日-),是美国著名的电玩游戏设计开发者、著名的游戏设计公司id Software的创始人之一,id是一家专门开发电子游戏、电视游戏的公司,成立于1991年。卡马克同时还是一位开源软件运动的积极倡导者。 如果你问比尔.盖茨,“你最欣赏的程序员有哪些?”,在他的回答中,肯定会出现John Carmack(卡

王伟挺的专栏 6127

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

3D游戏之父--John Carmack(一)

游戏轴心-廖子鹏 [转载] .北京 2004年09月08日08:37 3D游戏之父--John Carmack(一)---连比尔.盖茨都欣赏的天才译者:小熊在线-大灰熊如果你问比尔.盖茨,“你最欣赏的程序员有哪些?”,在他的回答中,肯定会出现John Carmack(卡马克)的名字。没错,John Carmack 在程序员中的崇拜程度,甚至到了无以为加的地步, 他设计出了游

JonnyLai 2960

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Zig语言:系统编程的现代演进,从C语言痛点看未来50年设计哲学

系统编程语言是构建操作系统、嵌入式软件和高性能应用的基础工具,其设计需要在底层控制力与开发效率之间取得平衡。传统C/C++语言虽然提供了硬件级别的访问能力,但在内存安全、构建系统和依赖管理方面存在长期痛点,导致开发复杂性和维护成本上升。现代语言通过编译时检查、显式错误处理和一体化工具链等技术手段,旨在提升系统软件的可靠性和可维护性。Zig语言正是在这一背景下诞生的创新方案,它保留了C语言级别的控制力,同时引入了编译时执行(comptime)、错误联合类型和内置构建系统等现代特性。这些设计不仅解决了交叉编译和

weixin_30394669的博客 341

白话计算机入门书籍--《穿越计算机的迷雾》有感

一本好书,是能够促使你不断地思考书中的话语,并且和自己学过的知识作对比,李忠的《穿越计算机的迷雾》成功地做到了这两点。这本计算机入门级书籍,深入浅出的讲解了二进制、继电器、与或非门还有触发器等计算机方面的基本概念,读来意犹未尽。 具体讲述如下:作者从如何制作加法器问题入手,引进了采用二进制来做加法器; 第四章讲解了中学物理上的电能生磁现象,从而制作电磁铁,用电磁铁吸引衔铁产生了继电器...

baifeng2628的博客 1032

穿越计算机的迷雾

电子的基本知识 1.的基本构成单位----原子是由电子、中子和质子三者共同组成,中子不带电,质子带正电,电子带负电,原子对外不显电性,相对于电子和中子组成的原子核,电子的质量极小,质子的质量大约是电子的1840倍。 2.电子是带负电的亚原子粒子,他可以是自由的,也可以被院子核束缚。 3.当电子脱离原子核束缚在其他原子中自由移动时,其产生的流动现象称为电流;在电导体中,电子在原子间的独立运动产...

qq_33303490的博客 1255

《穿越计算机的迷雾》读书笔记七

论访问速度,由触发器构成的**内存(SRAM)**是最快的,一般为几个纳秒。 与之相比,**动态存储器(DRAM)**就差些,访问速度可能是几十个纳秒,很大一部分原因在于它需要频繁刷新,在此期间无法接待处理器的访问。 ...

m0_37564426的博客 465

穿越计算机的迷雾--读书笔记五

第十三章:集成电路时代(计算机配件的进一步发展) 电子管和晶体管时代: 要造计算机的困难(资金和体积),和电子管比晶体管的优势:传输速度更快,介绍字节(换算和基本单位) 集成电路时代: 集成电路的发明历史和进一步升级。 用集成电路做存储器:1. 静态存储器 2. 只读存储器 静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(

FightingTsinghua的博客 395

穿越计算机的迷雾--读书笔记四

第八章:学生时代的走马灯(如何同时触发一整个电路) 1. 能保存一个比特的触发器: 解决触发器如何保存数据问题:运用D触发器 边沿触发: 边沿触发器,指的是接收时钟脉冲CP 的某一约定跳变(正跳变或负跳变)来到时的输入数据。在CP=1及CP=0 期间以及CP非约定跳变到来时,触发器不接收数据的触发器。 揭开走马灯之谜: 探讨如何省力同时触发触发器:振荡器+多个触发器 介绍走马灯电路:循环移位寄存器: 在数字电路中,移位寄存器是一种在若干相同时间脉冲下工作的以触发器为基础的器件,数据

FightingTsinghua的博客 732

微软 CTO 韦青:“程序员 35 岁就被淘汰”是个伪概念 | 人物志

作者 | 胡巍巍出品 | 优快云(ID:优快云news)4月2日,北京,丹棱街5号,这里是赫赫有名的微软(中国)总部。阳光明媚,一如当下的微软盛况。笔者来到位于微软1...

优快云资讯 2万+

<穿越计算机的迷雾> 在线交互示例汇总

各章节在线交互示例汇总, 不含截图及操作说明

Just do IT 1358

穿越计算机的的迷雾--读书笔记一

读书笔记 第一章:了解计算机要从电开始 1.1有的东西能导电,而有的则不能: 导体和绝缘体有一定区别,但在一定条件下可以相互转化。 1.2电的老家是原子: 电的微观解释:电是由自由移动的电子产生的 原子的历史及种类:质子数决定原子身份,电子数决定原子的性惰 1.3为什么有些东西可以导电: 形成原子所需要的因素:电子作为粘合剂 物质种类(宏观):单原子或多原子 决定是导体还是绝缘体:有无自由移动的电子 1.4电流是怎样形成的: 比较电流和电子速度 介绍发电的真正原因:导体中电子的循环流动 电源种类:

FightingTsinghua的博客 560
上一篇: 漫画 | Java对Python的渗透能成功吗?
下一篇: 云开发时代,前端程序员太幸福了!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值