从 97 年 1 月 我在 Program 版 Post 鼓励有心网友学习 Window Device Driver 以来, 陆续收到一些人询问如何下手. 现在我已没时间玩 BBS, 因除了 3D 显示卡 Driver 要 Tune 外,还被派去做一些杂 7 杂 8 的事情. 趁教师节比较有空,写下这封我学习 DDK 的经验, 如果那站的站主觉得对网友有帮助, 就尽管利用, 不用客气. 但需注明出处, 并严禁有任何谋利举动(如剽窃修改後, 来赚取稿费), 曾对一些网友提出如何在MFC 中用 I/O Port Function 的问题, 回答了 6 次, 让我觉得很烦烦烦烦烦烦. 希望这种情况不在发生.
本文供分 3 段: (1) 为何我要学 DDK (2) 学习 DDK 的过程 (3)未来可能的发展.
(1) 为何我要学 DDK
我是资讯科班出身, 就读过交大计工, 清大资研. 历经 78,79 股市狂飚, 退伍後,认为写程式没什麽前途, 也无法撑到 38 岁. 但 MBA 却是越老人脉越多, 收入也越多, 所以进资策会, 一面工作 一面准备 GMAT, 但没申请到理想的学校,而考外贸协会的人才培训班, 在复试时也被刷下来. 最後认命乖乖学Window 3.1,
第一年做多媒体资料库专案, 当时连 VC++ 1.0 都还没出现. 就用 Borland C++ 3.0以纯 SDK 方式 coding,(因不知道有 OWL 这种东西) 事後想起来真是因祸得福,让我更了解 Window 底层的运作 (不过当时真的觉得很干).
第二年做 Video Editor 是我比较快乐的时光, VC++ 1.0 刚出来, 但市面没一本相关书籍, 连 MSDN 也一样. 怎麽办? 到处找不到资料. 最後用最笨的方法:用 Debuger trace MFC source code! 然後搭配 Video for Window 1.1 版 SDK 来coding, 当时傻傻得, 以为可以做个 Video Editor 跟友立拼, 所以常常加班到 10 点, 但後来 Video Editor 结案後就放到储藏室, 而 Aldus 被 Adobe 并购, 友立也把 PhotoStyle 卖给 Adobe. 这件事件让我得到个教训: 套装软体不好做, 更难与国际大厂同类型产品竞争.
因有时 Video Editor 会利用 MCI Command 来控制 AVI/FLI 播放, 但觉得很奇怪, 那个 MCI Driver 到底在搞什麽鬼? 在好奇心驱使下, 翻 MSDN 的 MultiMedia Device Driver 来看, 才搞懂 MCI Driver 如何与底层的 Video/Audio Driver 沟通.
第三年是最黑暗的时期, Team Leader 包个 Multimedia Title 来做(还曾打算向敦煌科技包 Game 来做). 美工, 企划, 全和在一起, 而要我用Director 3.0 的 Lingo 语言来写 Title 的 Program. 我便开始消极抵抗, 同时自己偷偷用 MFC + WinG + 32 Bit Assembly 在 Win 3.1 上写个类似 Director 3.0 的 Engine. UI 及 绘图引擎都完成, 而且播放速度比 Director 3.0 还快. 但卡在不知道如何设计 Script 及 Interpreter. 最後只好做罢.然而转捩点就发生在这一年:应台北电脑工会之邀, 开门 "Windows 影音驱动程式剖析" 课程而与童子贤先生有一面之缘(当副总的他竟跑来上我这无名小卒的课), 也保留他一张名片. 另外帮别人写 Motion Control Card 的 Dos Driver 来用在 CNC 上, 对 Driver 开始发生兴趣, 原来写 Driver 的利润颇丰.
第四年, 黑暗的日子终於过去. 叁与 IBM VisualAge for Basic 的 Visual Component 开发, 用 VisualAge for C++ 3.0 来 coding, 过了一段无任何相关资料的日子, 还好从李维那拿到 OpenClass source code, 发挥 tracing 的精神, 终於顺利结案. 这年在某电脑展中遇上任职 IBM 的大学同学, 被他讥笑还在米仓中当米虫, 让我心理不好受. 也使我思考, 只会 coding 的我未来要何去何从, 难道要过着一年换一个专案的日子吗? 然後 40 岁时会变成怎样 ?( PetShop Boy 的 " Being Borning" 在我脑中响起…)
幸好碰上一个影响我很大的同事, 他那时也刚帮人写完一个 Window 95 的 VxD, 於是向他讨教, 并学得如何收集相关资料, 练好後就接个 A/D D/A 卡的 Win31/95 Driver CASE 来做, 写完 Win95 觉得不过瘾, 便拿 NT 4.0 DDK 来看. 另外他有事没事拿 ASIS 电子周刊给我看, 当时正报导 PC97 的 specification: ACPI, AGP, OnNow等新技术, 我看完就知道大好机会来了. 凭做 A/D D/A 卡 Window Driver 的经验, 我知道随着 Win95 的普及, 这些硬体卡没有 Win95 Driver 根本很难卖到欧美. PC97 规定了 Intel 的硬体设计如何跟 Microsoft 的 Window 做结合, 而介面就是 Window Driver! 加上主机板厂养的软体工程师只会写 BIOS or 8051, 对 Window Driver 根本是听都没听过, 但 PC97, 98 是必走的道路, 所以一定要找到会的人来做.
而这时候我又要换另一资料库相关的专案(我最讨厌做 MIS, 成天与数据, 报表奋战,有够无聊). 於是上网路找工作, 想到手头的童子贤名片, 就试投华硕看看. 没想到一试便上, (不过在面试时被嫌在资策会待太久, 恐染上不良习性). 进华硕後, 感觉到是 Right Man in Right Place. 终於可以一展抱负, 有明确的目标, 不再虚度时光, 也不会被别人嘲笑是米虫. 更重要的是有成就感, 想想做的专案, 是要卖到全世界的产品, 而且是与一些国际大厂竞争产品上市时间. 再也不是作完往仓库一摆的东西. 再者华硕目前员工人数少, 业务扩展迅速, 加上公司高级领导阶层非常重视研发实力, 只要有能力的人, 不怕没升迁机会. 不像宏基已有太多员工, 没什麽表现能力的机会, 且升迁管道太挤了.来自:http://www.qqread.com/other-devtool/q562771800.html进入讨论组讨论。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 保持进程在Shell退出后能继续运行方法 (3次浏览)
- BPEL的基本思想 (1次浏览)
- 在Shell中执行vi/cp/mv时自动备份源文件 (0次浏览)



