原文地址

本文内容

  • 引子
  • 0 序
  • 1 故事的开始 : CPU时代
    • 1.1 史前启示录
    • 1.2 盘古开天地
    • 1.3 矿工第一人
    • 1.4 CPU时代
  • 2 群众的觉醒 :GPU时代
    • 2.1 第一笔兑换
    • 2.2 逐渐流行
    • 2.3 阶级形成
    • 2.4 铸币工厂
  • 3 巨头的诞生 :ASIC时代
    • 3.1 军备竞赛
    • 3.2 疯狂上涨
    • 3.3 产业链
  • 4 未来的展望 :量子的幽灵
  • 5 结语
  • 参考资料

编者按:本文作者张沈鹏为比特币交易平台42btc.com 和42qu.com创始人,也是个牛逼程序员。

引子


至 2013 年 5 月 19 日——

  • 中国比特币节点有 85220 个,雄霸全球,占比 22.8%;
  • 美帝有 75258 个,排第二;
  • 德国有 30395 个,排第三。

数据来自 http://bitnodes.io/

0 序


比特币是电子黄金。

有黄金就有淘金者。

比特币的淘金者常自称为网络世界的“矿工”(miner), 与时代另一大阶层码农交相辉映,构成了虚拟社会的工农阶层。

时至今日,比特币矿业界已经历经三次产业革命, 从无到有,从有到多,吸引了越来越多的围观者投身其中。

很多人相信,比特币将引发信息革命之后的第四次产业革命——金融革命,将改变金融业,就像当年互联网改变了传媒业那样。

现在,请让我们回首那些硝烟未尽的过往。

1 故事的开始 : CPU时代


1.1 史前启示录

弗里德里希·冯·哈耶克(Friedrich von Hayek,1899~1992),20 世纪最伟大的经济学家之一,1974 年诺贝尔经济学奖获得者,晚年写了人生中的最后一本经济学专著  《货币的非国家化》 。

他在书中颠覆了正统的货币制度观念:既然在一般商品、服务市场上自由竞争最有效率,那为什么不能在货币领域引入自由竞争?

哈耶克提出了一个革命性建议:废除中央银行制度,允许私人发行货币,并自由竞争,这个竞争过程将会发现最好的货币。

该书出版后在西方引起强烈反响,由此引发的争论至今还未结束。

图 1 哈耶克《货币的非国家化》

1.2 盘古开天地

千百年来,如何用最科学的方式对财富进行计价,并以最经济的方式来交易,是一个历史难题。

在诺贝尔经济学奖得主弗里德曼看来,太平洋小岛雅浦岛居民用在石币上作记号的方式来交易,与美联储将黄金储备账单从一个抽屉移到另一个抽屉,本质上并无不同。

图 2 弗里德曼

为此他产生一个伟大的灵感:可以用计算机技术(数学)来建立比国家信用更可靠的货币体系。弗里德曼构思了一个自动化装置,可以按程序来发行货币,从而避免各国央行无限制地开动他们的印刷机。

可是,怎么来实现这一设想?怎样去制造不可伪造的货币呢?

上个世纪 80 年代,一群天才程序员在密码邮件组探讨这一难题。

1982 年,大卫·乔姆(David Chaum)提出不可追踪的密码学网络支付系统。8 年后,他将此想法扩展为密码学匿名现金系统,即 Ecash。

1998 年,戴伟(Wei Dai)的论文阐述了一种匿名的、分布式的电子现金系统:b-money。

与此同时,尼克·萨博(Nick Szabo)发明了 Bitgold,提出工作量证明机制,用户通过竞争性地解决数学难题,然后将解答的结果用加密算法串联在一起公开发布,构建出一个产权认证系统。

哈尔·芬尼(Hal Finney)则把该机制完善为一种“可重复利用的工作量证明”。

2008 年 11 月 1 日, 一个名不见经传, 自称中本聪(Satoshi Nakamoto)的网友, 在 metzdowd.com 的密码学邮件组中发表了《比特币:一种点对点的现金支付系统》, 阐述了他对电子货币的新构想。

1.3 矿工第一人

对于中本聪的想法,当时,最好的反应也只是持怀疑态度的接受。密码学研究人员已经看到太多低水平的新手想出来的宏伟计划了,他们的本能反应就是怀疑。

不过,这份邮件引起一个人的注意——哈尔·芬尼。

哈尔·芬尼是在密码圈成名已久大牛,PGP 加密的作者之一。哈尔·芬尼早就构想过一种基于密码学的货币。他甚至曾经尝试创造过基于一种基于计算工作量的货币,名为 RPOW。

事实上,比特币用到的核心技术之一便是基于他当年提出的“可重复使用的工作量证明机制”。

而中本聪是一个发奋图强的程序员。他不止提想法,他还写代码。

2009 年 1 月 3 日,他发布了 bitcoin 客户端的第一版。(题外话,推荐一篇文章 《我就差一个编程的》)

在接下来的几天,哈尔·芬尼通过邮件向中本聪报告了不少 BUG,然后中本聪把它们一一搞定。

很快,比特币软件的运行就非常稳定了,所以,哈尔·芬尼就让它自己运行着。那时,挖币难度还只是 1,可以通过 CPU 轻易地得到块,根本不需要 GPU。在接下来的几个星期, 哈尔·芬尼开采了几千个比特币。

后来,哈尔·芬尼觉得运行 bitcoin 客户端会导致计算机很烫,而且风扇的噪音也让他困扰,于是就把软件关闭了。

或许, 他没有意识到,他会因此在历史上留下自己的名字。

就像人们永远会记得,贝尔发明电话时,第一句话是向他的助手喊道:

“沃森,快过来,我想见你。”

1.4 CPU时代

在那个年代,比特币只是一种新鲜而宏大的概念。

这个世界上有太多新鲜而宏大的概念,但这些概念绝大部分都很快地随风而逝,好像它们从来没有出现过一样。能幸存并发展壮大的,万中无一。

事实上,比特币幸存了下来,并悄然流传开来。

不过,参与者都只是觉得这个概念挺有趣,公司电费也不用自己掏钱。他们开始找一些空闲的机器,运行比特币的客户端。

可以说, 这时候的比特币对于大部分人而言都只是一个游戏。它的价值还比不上《魔兽世界》中的金币,并没有太多人在意到底可以挖多少。

大家都用着比特币的客户端,用着 CPU,默默挖着矿。

一种力量,在这波澜不惊的水面下,生根发芽,悄然滋长。

2 群众的觉醒 :GPU时代


2.1 第一笔兑换

2010 年 5 月 21 日,一位昵称为 laszlo 的人在论坛上发帖,想出售 10000 比特币,要价 50 美元。

但是,没有人买。

不过,有人表示,愿意用价值 25 美元的比萨饼优惠券换这 10000 比特币。

Laszlo 答应了。

若用如今(2013.05)市价,10000 比特币大概可以兑换 8 百万人民币。

我想,这大概是历史上最昂贵的比萨饼了。

蓦然回首,历史总是让人感慨万千。

2.2 逐渐流行

一年后, 2011 年 5 月 29 日,全球最大的 BT 下载网站“海盗湾”创始人 Rickard Falkvinge 写了一篇著名文章 《为什么我把我的积蓄全部投入Bitcoin ?》。在这片文章中,他旗帜鲜明的表明了自己对比特币的狂热。他在写道:

下面是三个我打赌 Bitcoin 会升值的主要原因:

过去:在过去十四个月里,Bitcoin 对美元的汇率增加了一千倍。 是的。

再读一遍:一千倍,十四个月。

目前还没有迹象表明它将停止或已经饱和,恰恰相反。

使用:Bitcoin 的使用不需要经过任何官方的同意,所以不需要向第三方支付交易费用,没有任何繁琐的手续。

预期:根据数学计算,我预测,在未来几年内它的价值还会至少有一千倍的增加,而且这只是保守计算。

事实上,比特币后来的价格走势也基本印证了他的观点。

2.3 阶级形成

如果有 10%的利润,资本就保证到处被人使用;

有 20%,资本就会活泼起来;

有 50%,资本就会铤而走险;

有 100%,资本就敢践踏一切人间法律;

有 300%,资本就敢犯任何罪行,甚至冒绞首的危险。

——《资本论》第一卷

比特币的市场表现逐渐的吸引了更多早期玩家的加入。疯狂的升值,让大家不再像以前那么淡定,也有人开始研究如何挖掘到更多的比特币。

比特币设计之初,就决定了每天比特币的总产量是有限的。你的运算能力越强大,获取比特币的概率就越大。这是一个充分竞争的自由市场。

人们八仙过海,各显神通,用尽各种手段,提升自己的运算能力,以期挖出更多的比特币:魔道的黑客们,通过深埋地下的病毒木马,控制了大量计算机组成僵尸网络,来挖矿获取暴利;正道的 Hacker 们则研究发现,比特币挖矿所依赖的 SHA-256 哈希值运算,GPU(也就是显卡)的计算速度比 CPU 高成百甚至上千倍。

于是乎,Hacker 们编写出利用显卡挖掘比特币的程序,进而引发了比特币矿业界的第一次产业升级。大批的玩家开始采购大量的显卡组成专门用于挖矿计算机器乃至计算集群, 这些机器被称为“矿机”,而“矿机”的所有者则自称“矿工”。

为此,有人甚至写了一篇文章《13岁的儿子开始在网上赚钱了》 , 讲述他儿子如何通过显卡挖矿而赚了上千美元的故事。

此时,中国玩家也大规模参与了进来,媒体上的各种报道日多。不过,他们中很多人并非热衷于比特币本身的理念,只是将其当成一种赚钱的门路。很多人会将挖到的比特币按照当时的市场价抛售,补贴家用。

事后,因为比特币一而再,再而三的疯狂升值,不少人对自己当时这种及时行乐的短线做法表示了无比第后悔。有人感叹:“本来钱足够在北京买套房,结果我只用它买了辆车”;更有人因此发出了“三年不出币,出币就剁手”的狠誓。

而 CPU 挖矿,因为计算效率过低,日益衰落,逐渐退出历史舞台。官方客户端 bitcoin 也从 0.3.22 版起,宣布取消自带的比特币 CPU 挖矿功能。

2.4 铸币工厂

有“矿机”,有“矿工”,自然也有“矿场”(又称“矿池”,“铸币池”)。

矿机的主要工作是将交易记录打包为数据块, 每个成功打包的数据块中都允许发行一定数量的新比特币。

但是,随着参与者日多,打包数据块的难度也在快速。单台矿机成功打包一个数据块的概率越来越低,甚至长达数年数十年。

于是,有人振臂一呼“全世界的无产阶级联合起来”,响应者云集。

他们将零散的矿机整合起来, 形成一个个庞大无比的云计算集群,然后根据计算能力的贡献均分挖矿收益。一如当年从小作坊到大工厂的工业革命。

图 矿池市场占用率

至此,比特币网络的总计算能力已经远远超过了全球前五百名超级计算机计算能力的总和。

不过, 这一切还仅仅是个开始。

3 巨头的诞生 :ASIC 时代


3.1 军备竞赛

2012 年的时候, 人们意识到可以通过设计专门的 ASIC 集成电路来专门进行哈希计算,提高挖矿效率。事实证明,ASIC 挖矿比显卡挖矿,相同能耗,速度要快上百倍。

不过,ASIC 制造很昂贵。硬件芯片的生产需要大量的资金,远非普通个人可以承担。

于是,大家想到了募资。

首先,是蝴蝶实验室(BFL)开始接受 ASIC 订单,采用 65 纳米制造技术。

他们募集了大量资金,然而研发进展却异常缓慢——连续八个月, 他们仅仅是在 2013 年 1 月的 CES(全球消费性电子大展)大展上展示了一次 ASIC 原型机的机箱。

人们等待着,对此很不满。

此时比特币社区杀出几路其他人马,纷纷表示“ASIC 矿机, 我也能做, 只是没有钱”。

但对于已经开始渐渐疯狂的比特币社区而言, 钱的问题,根本不是问题。2012 年 8 月 9 日,深圳某公司发言人“烤猫”在 bitcointalk 发帖,声称自己的团队能研发 ASIC 矿机,面向全球网友以比特币的方式募股,筹集启动资金。

股份很快被哄抢一空。

2013 年 1 月 3 日,这批矿机的样机问世并稳定运行,正式标志着 ASIC 时代的来临。

在烤猫团队公布样机的 17 天后,中国的另一团队——阿瓦隆 Avalon 团队完成了首个矿机的交付,比特币网络核心开发者 Jeff Garzik 有幸成为了第一个商业 ASIC 矿机的拥有者。

2013 年 4 月 20 日 ,瑞典专业 ASIC 设计公司 ORSoC 宣布他们将联手 KNCminer 进行专业 ASIC 比特币矿机的设计及生产。.

……

军备竞赛,拉开帷幕。

3.2 疯狂上涨

比特币每 4 年的产出减半一次。

2012 年底,比特币产量首次减半。如果你略懂经济学, 一定会联想到,供给的减少将带来价格的上升。

适逢其会,塞浦路斯金融危机让比特币大出风头。

随着政府对银行储户征税,同时施加严厉的资本管制,人们疯狂寻求资金出路。

那些不再信任政府的人突然发现,比特币或许可以挽救他们的财富。

于是,越来越多的人开始将存款转化成比特币,政府确实没办法查封你的比特币,美国人想封维基解密的比特币账户,至今都没有成功。

最近比特币的价格持续上涨,而上涨带来的新闻媒体报道又带来更多人的关注,导致比特币上涨速度越来越快,终于在 2013 年 4 月 10 号摸高到了 260 美元。

这一波从 25 美元上涨到 260 美元,短短两三个月,价格上涨了 10 多倍。而从 2010 年 4 月份到 2011 年 6 月份,比特币则在 14 个月内暴涨了 1000 倍。

于是在 2013 年 4 月 11 日, 有人写下了《比特币的内在价值》一文, 充分反映了当时市场的乐观情绪。引用如下:

比特币合理价值到底是多少呢?这取决与你认为比特币作为一种“货币”所能到达的高度。

如果你认为比特币和黄金差不多,全球央行的黄金储备总价值大约 12 万亿美元,换算下来一枚比特币大约价值 57 万多美元。

如果你认为比特币能完全替代美元钞票,美元的 M0(通货发行额减去金融机构库存现金,可以简单理解为流通中的现金)大约 9000 亿美元,如果用 2100 万比特币代替的话,一枚比特币大约价值 4.5 万美元。

如果你认为比特币能够替代全球隐藏的“黑钱”,由于“黑钱”不好定义,我们用“消失不见”的美元钞票来代替。全球的黑钱大约有 1 万亿美元。假设都用比特币来持有,一枚比特币的价值大约为 4.8 万美元。

即使比特币只能达到上述三种情况中的 10%,对应的比特币价值也有 5000 到 5 万美元,远远高于现在比特币的价格。

比特币价格疯狂上涨的结果,就是 ASIC 矿机价格的一路飙升。以 Avalon 为例,其价格从最早的 8 千人民币,一路飙升到顶峰时的 31 万人民币。

作为投机品,房地产与比特币比起来,简直是弱爆了。

3.3 产业链

大部分经济学家都相信,分工的不断深入和细化是产业成熟的标志之一。比特币矿业的发展,也验证了这种看法。

Avalon 成功推出矿机之后便开始宣布转型—— 开源 Avalon 除芯片以外的硬件解决方案,但同时只出售芯片,不再出售组装好的成机。

事实上,Avalon 这样做, 也不无道理。Avalon 是由 28 岁的“南瓜张”,北航计算机体系结构在读博士负责研发。对于芯片研发,他的能力毋庸置疑。不过,产品销售和客服,已经超出了他的专业范围。

Avalon 团队在第二次预售的时候,就给出了几个霸道的用户条款:

在预订之前,请务必阅读并认可以下条款:

1,在任何情况下均不退款。这是因为,我们会用预付款去购买零部件,因此无法退款。

2,没有保障。这包括但不限于:现在没有第三方评测所带来的风险,我们是骗子的风险,由于客观和主管原因无法按时发货的风险,bitcoin 本身出现严重问题无法继续存在等。

3,没有销售客服。由于人力有限,如果您不能理解本公告的全部内容,即请不要购买。同时,QQ 和旺旺等均不作预订咨询,所有询问都不会得到回复。

4,收货地址一经确定即不能更改。

这些条款后来也被不少人诟病。虽然事后 Avalon 团队用最先大批量发货的事实,证明了他们的信用。但至少在当时看来,很多做法在商业上是不够成熟的。

加上向最终用户直接出售成品还需要提供后续保修等种种服务,Avalon 团队显然觉得这些事情太过繁琐。于是决定不再出售成品机器,而选择专注地成为比特币挖矿芯片提供商。

我想, 他们的决定,是符合分工细化的社会发展趋势,极端明智的。

4 未来的展望 :量子的幽灵


一个幽灵,共产主义的幽灵,在欧洲大陆徘徊。

——马克思

若实用的量子计算机诞生,bitcoin 的密码学基础则将崩溃。

当然,受影响的将不仅仅是比特币,而是整个现代计算机密码学——也就是说,银行亦不能幸免。

也许很多同学会觉得量子计算机还很科幻。不过, 事实上量子计算机的发展速度丝毫不逊色于比特币。

2007 年,D-Wave 公司宣布成功开发出世界上第一台量子计算机的工作模型机。此时就有科学家预言,从模型机到真正生产商业化应用的机器,还有至少 20 到 50 年时间。

不过, 事实证明,在预测未来上,专家往往并不比算命先生靠谱——2011 年,D-Wave 发布了全球第一款商用型量子计算机 D-Wave One,采用了 128 量子位的处理器,运算速度是前代的四倍,理论运算速度已经远超当时的所有超级计算机。

2012 年,D-Wave Two 量子计算机面世,其处理器达到了 512 量子位,它在某些领域的运算能力可以在很长一段时间内保持领先,售价 1500 万美元。

2013 年,Google 决定采购 D-Wave 量子计算机,创办量子计算实验室。为了测试 D-Wave 量子计算机的性能,科学家让 D-Wave 与配置英特尔芯片的传统计算机运行同一项任务。在某些测试中,量子计算机的速度比传统计算机快了近 1.1 万倍。

当然,话说回来,现在妄言量子计算机投入实用还为时过早,更不用说用量子计算机来挖矿——目前,每天比特币的总产量也才 3600 个,每四年减半,而一台量子计算机就价值 1500 万美元。另外,量子计算机的超强计算能力可能引发 51% 攻击,这一点也值得担忧。所谓 51% 攻击,就是指某人拥有了超过全网 51% 的运算能力,那么他就可以任意修改比特币的全局账单。

尽管有上面的忧患,但我的观点是,未来总是不确定的,有时无需太过担心,聪明的人总会找到聪明的解决方案。凯恩斯就有句名言 :

从长期角度看,是种误导。从长期角度看,我们都会死。

所以如果真有一天量子计算机投入实用,那虽是比特币之祸,但也是人类之福。

5 结语


比特币, 2013 年,四岁。

它的出现是历史发展的必然,还只是昙花一现的概念?

它将对全球化的进程带来怎样深远的影响, 中国又在其中扮演一个怎样的角色?

它能否生根发芽,以摧枯拉朽之势重建人类社会的金融体系, 进而影响世界的政治格局?

我想, 与其等待答案, 不如给出回答。

和一切新鲜而充满活力的事物一样, 比特币属于朝气蓬勃的年轻人。

后记:

目前张沈鹏的团队也在计划采购 Avalon 芯片量产矿机。这个团队由三位清华 & 北大毕业、有多年 PCB 制版经验的同学负责基于 Avalon 的开源解决方案设计芯片主板。

他们目前已经开放了矿机的预定,详见:https://42btc.com/mine。

参考资料


  1. 中本聪的沃森:比特币与哈尔·芬尼传奇

  2. 为什么我把我的积蓄全部投入Bitcoin ?

  3. 13岁的儿子在网上赚钱了 (一) (二)

  4. 比特币的内在价值

如果您想看比特币的技术文,还可以点这篇《走向未来:比特币何以变得更好》和《诺贝尔经济学家Krugman错了吗:数字朋克的比特币热愈演愈烈》以及我们在两年前发布的关于比特币的介绍《Bitcoin P2P 货币:有史以来最危险的项目》和 《Bitcoin P2P 虚拟货币原理详解》。

比特币 Bitcoin 是什么,我勒个去,哈耶克果然超前——货币的非国有化,容我思量一下【转载+整理】的更多相关文章

  1. 比特币Bitcoin源代码安装编译

    body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; }        比特币 (货币符号: ฿;英文名:Bitcoin;英文 ...

  2. 什么是比特币(bitcoin)

    一.什么是比特币? 比特币是一种由开源的P2P软件产生的电子货币,是一种网络虚拟货币.比特币使用遍布整个P2P网络节点的分布式数据库来记录货币的交易,并使用密码学的设计来确保货币流通各个环节安全性.比 ...

  3. 国内比特币bitcoin交易平台

    火币网:   www.huobi.com 比特币中国:   www.btcchina.com okcoin:    www.okcoin.cn 中国比特币:   www.chbtc.com 比特币交易 ...

  4. 如何保护好我们的比特币(bitcoin)

    转自:http://8btc.com/thread-819-1-1.html 随着比特币(BTC)的使用者越来越多:价格也很高(2013年,1比特币价格长期在100美元以上):同时比特币没有一个中央机 ...

  5. 国内平台比特币(Bitcoin)搬砖流程教学

    建议搬砖时要的价差,实际费用与利润请自行计算,避免亏损或白做工请自行拿捏利润. 请搬砖前要先自行操作与确认双边平台的存取速度.利於拿捏时间,避免时间差导致亏损. (所有内容 仅供参考 盈亏自负) 搬砖 ...

  6. 比特币运行原理[z]

    https://baijiahao.baidu.com/s?id=1581755535769652543&wfr=spider&for=pc 这篇文章主要讲解比特币是什么?它的运行原理 ...

  7. 关于比特币的“冷存储”和Armory的使用

    转自:http://8btc.com/thread-1164-1-1.html 最近随着比特币话题的火热,又有一批人卖房或倾产换成比特币入圈,这一次与以前不同的是,以前倾产入圈的人都是技术人员,有足够 ...

  8. BitCoin工作原理

    1.加密货币 公共账本-信任+加密算法=加密货币 BitCoin是第一个被是实现出来的加密货币. 首先理解比特币是什么,在考虑要不要买入?(人人都想一夜暴富,美哉) 2.发送.接收.创造比特币的时候电 ...

  9. 比特币学习笔记(二)---在windows下调试比特币源码

    根据我一贯的学习经验,学习开源代码的话,单单看是不够的,必须一边看一边调试才能尽快理解,所以我们要想法搭建windows下bitcoin源码的调试环境. 紧接着昨天的进度,想要调试linux下的比特币 ...

随机推荐

  1. Revit MEP API连接器类别

    连接器的类别,风管不仅有两端,可能在曲线上也有. ;         ;         ;         ;             Connector conn = csi.Current ; ...

  2. ASP.NET MVC与Sql Server交互, 插入数据

    在"ASP.NET MVC与Sql Server建立连接"中,与Sql Server建立了连接.本篇实践向Sql Server中插入数据. 在数据库帮助类中增加插入数据的方法. p ...

  3. 使用断言NSAssert()调试程序错误

    NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异 ...

  4. 11i and R12 Table Count in Different Module

    Advertisement Module 11i Tables R12 Tables New Tables AR 551 616 118 BOM 264 337 73 GL 186 309 140 A ...

  5. 【伊利丹】Hadoop2.0 NN HA实验记录

    1.关于Hadoop2.2.0中HA的介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDUxMjEyNA==/font/5a6L5L2T/fo ...

  6. ExtJS 4.2 教程-04:数据模型

    转载自起飞网,原文地址:http://www.qeefee.com/extjs-course-4-data-model ExtJS 4.2 教程-01:Hello ExtJS ExtJS 4.2 教程 ...

  7. 《Python计算机视觉编程》

    <Python计算机视觉编程> 基本信息 作者: (美)Jan Erik Solem 译者: 朱文涛 袁勇 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:978711535 ...

  8. Promise is rejected: Error: 2 UNKNOWN: error starting container: API error (404): {"message":"network build-blockchain-insurance-app_default not found"}出错的解决方案

    错误描述: docker logs web 现象: > blockchain-for-insurance@2.1.0 serve /app > cross-env NODE_ENV=pro ...

  9. JavaScript 覆盖document.createElement 方法

    最近项目遇到了问题,有个asp.net web程序只能在IE7 运行,现在xp都淘汰了,大家都用IE8-IE11,因此这个web app也需要升级 适应所有IE版本.照成IE版本不兼容的问题主要来致d ...

  10. MFC中打印对话框CPrintDialog类

    void CCPrintDialogView::OnPrint() { DWORD dwflags=PD_ALLPAGES|PD_NOPAGENUMS|PD_USEDEVMODECOPIES|PD_S ...