windows 核心编程还有学习的必要么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
otmb
V2EX    程序员

windows 核心编程还有学习的必要么?

  •  
  •   otmb 2015-01-08 22:32:48 +08:00 20413 次点击
    这是一个创建于 3984 天前的主题,其中的信息可能已经有所发展或是发生改变。

    听说MFC快死了,如果是这样,还学什么核心编程呢:(

    不过,貌似这本书挺经典的样子,要不要学呢,纠结了

    48 条回复    2018-01-16 15:27:27 +08:00
    illuz
        1
    illuz  
       2015-01-08 23:04:58 +08:00
    MFC 和 Windows 核心编程是两码事吧...
    yksoft1
        2
    yksoft1  
       2015-01-08 23:06:50 +08:00
    MFC会死,纯Win32估计还能撑几年
    vaNo
        3
    vaNo  
       2015-01-08 23:45:02 +08:00
    MFC的那套关于宏及类设计的奇技淫巧,还是要学滴....
    latyas
        4
    latyas  
       2015-01-09 00:04:04 +08:00
    windows 核心编程不是指mfc吧
    otmb
        5
    otmb  
    OP
       2015-01-09 00:26:43 +08:00
    @vaNo 学这货干啥?
    azurefang
        6
    azurefang  
       2015-01-09 01:04:18 +08:00
    赚钱还是学移动开发好。
    xdeng
        7
    xdeng  
       2015-01-09 01:11:15 +08:00 via iPhone
    一看新手
    gdgoldlion
        8
    gdgoldlion  
       2015-01-09 01:17:06 +08:00
    不要深入Native这种坑
    就业面窄,压力大,学东西难 ,上班累

    走Web,资源多,人nice,生态更开放
    工作好找,东西也不易过时
    em70
        9
    em70  
       2015-01-09 01:37:57 +08:00 via Android
    win32可以学Delphi,学习和开发成本都低,MFC说实话在win32平台真不如VCL
    Vkme
        10
    Vkme  
       2015-01-09 01:50:24 +08:00 via iPhone   1
    学过,当时还做了个小玩意儿呢,现在都忘得差不多了。
    hjc4869
        11
    hjc4869  
       2015-01-09 01:59:32 +08:00
    楼主如果是自己搞开发,建议.NET
    如果是被迫学的MFC(←可能吗),那就好好学,学完好转……
    不然白白浪费了时间。
    otmb
        12
    otmb  
    OP
       2015-01-09 02:26:41 +08:00
    @em70 你在用Delphi?
    otmb
        13
    otmb  
    OP
       2015-01-09 02:33:21 +08:00
    @em70 mfc开发速度快点?
    em70
        14
    em70  
       2015-01-09 02:35:46 +08:00 via Android
    @otmb Delphi开发快得多,特别开发小软件,Delphi优势巨大
    otmb
        15
    otmb  
    OP
       2015-01-09 02:38:52 +08:00
    @em70 是不是VB更赞呢?
    em70
        16
    em70  
       2015-01-09 02:43:03 +08:00 via Android
    @otmb VB像个玩具,Delphi同时具备VB的效率和VC的严谨,大项目可能不如VC
    otmb
        17
    otmb  
    OP
       2015-01-09 02:44:24 +08:00
    @em70 现在用delphi的人不多了吧?
    otmb
        18
    otmb  
    OP
       2015-01-09 02:44:59 +08:00
    @hjc4869 .NET做界面,好像机制和MFC差不多,只是编程语言不同?
    hjc4869
        19
    hjc4869  
       2015-01-09 02:52:55 +08:00
    @otmb .NET主要是用WinForms或者WPF
    WinForms是基于事件的一组api,用起来跟MFC确实差不多,不过开发效率挺高。
    WPF基于DirectX,是比较先进的UI技术,数据驱动的。

    举个例子,现在MS自己开发软件,比如Visual Studio 2013就是用的WPF。。
    VC6时代的IDE记得是用MFC开发的。。所以哪个是主流这样看的很清楚。
    对于新设备,触摸屏,高dpi等支持,肯定还是.NET更好。
    em70
        20
    em70  
       2015-01-09 02:58:14 +08:00 via Android
    @otmb 资料,控件,社区都不缺,XE3以后还能开发mac os平台的软件,同一个工程可以编译win和mac
    两个平台运行的可执行文件。
    otmb
        21
    otmb  
    OP
       2015-01-09 03:03:43 +08:00
    @em70 Borland好像被收购了,现在Delphi系列产品还有人维护么?
    datou552211
        22
    datou552211  
       2015-01-09 08:02:49 +08:00
    web 和 移动
    meta
        23
    meta  
       2015-01-09 08:55:05 +08:00
    看完上面二十多楼,感觉又回到了十年前,多么怀念啊。
    andy1987
        24
    andy1987  
       2015-01-09 08:59:42 +08:00
    这个书更多是介绍如果通过系统API和系统进行交互的,还是很值得一读的,所以请抛开MFC去阅读这本书
    yangyanggnu
        25
    yangyanggnu  
       2015-01-09 09:16:45 +08:00   5
    我个人觉得 win32 的 SDK 和 DDK 都有研究的必要,对于了解系统运作非常有帮助。这些根基的知识不会有过时之说。MFC 是对 win32 不严谨的封装,所以,你要的是 win32 而不是 MFC。

    win32 相关书籍:

    《Programming Windows (5th Edition) 》: http://www.amazon.com/Programming-Windows-5th-Developer-Reference-ebook/dp/B00JDMP71S/ref=sr_1_2?ie=UTF8&qid=1420765395&sr=8-2&keywords=windows+programming

    《Programming Windows》: http://www.amazon.com/Programming-Windows-Fifth-Microsoft/dp/157231995X/ref=sr_1_2?s=books&ie=UTF8&qid=1372211708&sr=1-2

    《Windows via C/C++》: http://www.amazon.com/Windows-via-Pro-Jeffrey-Richter/dp/B00B9ZFGRW/ref=sr_1_1?s=books&ie=UTF8&qid=1372211040&sr=1-1

    《Windows Internals》-part1: http://www.amazon.com/Windows-Internals-Part-Covering-Server/dp/0735648735/ref=sr_1_5?s=books&ie=UTF8&qid=1372211273&sr=1-5&keywords=David+A.+Solomon

    《Windows Internals》-part2: http://www.amazon.com/Windows-Internals-Part-Covering-Server/dp/0735665877/ref=pd_bxgy_b_img_y

    另外,windows 的内核源码也有研究必要,从我经验来看,获取 windows 内核源码至少有三个渠道:reactOS、wine、Windows Research Kernel、win2K 泄漏源码。多年前有国外组织对 windows 内核进行逆向工程,诞生了 reactOS 和 wine 两个项目,前者是类 window 操作系统,与 window 在 API 级别兼容,后者是在非 windows 系统上运行 win32 程序的中间层,逻辑上,与 window 在 ABI 级别兼容;Windows Research Kernel,M$ 向高校和政府开放的用于研究的部分内核源码,通过某些特殊渠道你可以拿到;win2K 泄漏源码,大约在 2K4 年发生的事件,你知道那儿有。

    前三者分别对应三本名著:毛德操的《Windows 内核情景分析采用开源代码ReactOS(上、下册)》、wine官网的《Wine Developers Guide》、潘爱民的《Windows内核原理与实现》。

    如果以上知识你都消化得差不多了,还想提升,可以研究下 rootkits。

    P.S., DDK 我没觉得有几本名著,所以,不推荐了。
    sujin190
        26
    sujin190  
       2015-01-09 09:21:01 +08:00
    mfc现在用得可能不多,但其中很多设计思想对初学者还是有很大帮助的,核心编程不得不说是本好书,可以一看
    yuankui
        27
    yuankui  
       2015-01-09 09:29:15 +08:00
    小朋友,我告诉你
    现在这个年代 学windows编程基本就是作死。。
    要么移动,要么web,你选吧。。
    likebeta
        28
    likebeta  
       2015-01-09 09:31:41 +08:00
    学的主要是思想, 过时的是mfc以及api,其他的不便
    zkd8907
        29
    zkd8907  
       2015-01-09 09:36:49 +08:00
    Windows核心编程和MFC有毛关系啊 = =
    sharebox
        30
    sharebox  
       2015-01-09 09:37:29 +08:00
    不管实际项目有没有用到,如果是在windows平台开发,有学习一下的必要,除了核心编程,还有楼上推荐的几本书,看完之后对windows运作的一些机制会有个大体的了解,核心编程里面的内容估计和MFC没多大关系 ,MFC只是一个开发框架。MFC其实也有了解一下的必要,倒不是说一定要用,可以看看侯捷翻译的深入浅出,一步步自己实现类MFC的框架,可以学到很多东西。大家都比较推荐Delphi, VB, 只能说各有所长吧, 我接触到的工业级别的项目,尤其是国外的,windows平台下很多都是VC的工程...... ,不过VCL开发确实比较方便快捷,我也喜欢,主要看需要。以上内容拿来学习研究就可以了,如果真要在工作中开发windows程序,除非客户还在用winxp,不然桌面程序还是直接上WPF吧。
    LittleMK
        31
    LittleMK  
       2015-01-09 09:42:44 +08:00
    如果你想开个什么东西,还是直接.NET吧。如果你个人对windows 核心编程类似的内容非常兴趣,学习一下肯定对自己有帮助
    em70
        32
    em70  
       2015-01-09 10:13:03 +08:00
    @otmb 卖给embarcadero了,每年一个新版本,目前路线是全平台,采用firemonkey和VCL两种框架,firemonkey支持win,mac,ios,android跨平台开发, linux后面也会支持. 如果只是win32平台开发,巅峰版本D7还是用得很多得. 掌握PC软件开发技能还是很有价值的,毕竟PC永远不会死
    thfurior
        33
    thfurior  
       2015-01-09 10:53:45 +08:00
    同打算学的被楼上几位吓得不敢说话
    Drinking
        34
    Drinking  
       2015-01-09 10:58:48 +08:00
    有一本全新的 《Windows程序设计(第5版珍藏版) 》,楼上有需要么,半价出了。买来就没看过,真是珍藏了
    akagi
        35
    akagi  
       2015-01-09 11:18:50 +08:00
    前一段翻了下,书写得不错,东西有点老,不过微软恐怖的兼容性,倒也不算落伍。如果是学习Windows的一些机制,这本书值得一看;当成API小全,那还是免了。
    akagi
        36
    akagi  
       2015-01-09 11:22:04 +08:00
    @yangyanggnu 真有人看得完毛德操上下么……
    otmb
        37
    otmb  
    OP
       2015-01-09 13:48:46 +08:00
    @yangyanggnu win2K泄露源码可以编译么?
    otmb
        38
    otmb  
    OP
       2015-01-09 13:49:22 +08:00
    @likebeta 不会mfc,学得懂内核编程思想么:(
    semicircle21
        39
    semicircle21  
       2015-01-09 14:37:53 +08:00
    @em70 你暴露年龄了~
    yangyanggnu
        40
    yangyanggnu  
       2015-01-09 15:12:11 +08:00
    @akagi
    真有人看得完毛德操上下么……
    也就 1.5 倍《c++ primer》的厚度嘛,( )


    @otmb
    win2K泄露源码可以编译么?
    这不是 win2k 完整系统的源码,只是内核的,分模块可以编译通过。

    不会mfc,学得懂内核编程思想么
    MFC 和 windows 内核没关系,MFC 只是对 win32 API 的封装,如果追求开发效率,你可以考虑 wxwidget,更现代的封装实现,并且还带来_原生_跨平台能力。
    liuzhedash
        41
    liuzhedash  
       2015-01-09 16:30:53 +08:00
    MFC和Windows核心编程没有绝对的学习上的因果关系
    但是Windows核心编程中的很多知识有助于你理解MFC
    如果你还在搞MFC。。。尽量使用先进点的技术
    如果你只是想学习Windows相关的东西,那Windows核心编程是肯定要看的
    Narcissu5
        42
    Narcissu5  
       2015-01-09 17:02:03 +08:00
    @yangyanggnu 从程序开发的角度上来说,不用挖这么深,甚至不能挖这么深。

    任何msdn没有描述的接口和行为,在windows中的更新中都会在未通知的情况下更改。这时候套用《indows via c/c++》的话来说,你的代码“在火焰中化为一片灰烬了”
    akagi
        43
    akagi  
       2015-01-09 18:01:28 +08:00
    @yangyanggnu 唔,自愧不如。
    spacewander
        44
    spacewander  
       2015-01-09 18:45:20 +08:00
    可怜的Windows平台……都没人搞Windows系统编程了么?
    ragnaroks
        45
    ragnaroks  
       2015-01-10 09:15:51 +08:00
    Windows建议上.net,WPF真心优秀.而且微软要是完全开源,linux下说不定也能编译.
    huangzhidu
        46
    huangzhidu  
       2015-01-10 16:07:27 +08:00 via iPad
    @gdgoldlion 听起来像是各种培训学校的广告。。。kernel很好找工作
    gdgoldlion
        47
    gdgoldlion  
       2015-01-10 21:46:15 +08:00
    @huangzhidu =。=,哈哈,已入坑的,真不希望再有人跳
    byaiu
        48
    byaiu  
       2018-01-16 15:27:27 +08:00 via Android
    @Drinking 请问这本书还有吗
    关于     帮助文档     自助推广系统     博客     API     FAQ/a>     Solana     902 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 19:56 PVG 03:56 LAX 11:56 JFK 14:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86