亲,双击屏幕即可自动滚动
第39章 內部演示
    日子像上了发条,转眼到了 windows预览版內部演示的日子。
    公司那间最好的机房被临时改造成了演示厅,拉上了窗帘,只有投影仪的光束打在幕布上。空气里飘著新机器散热特有的焦糊味,混杂著一种近乎实质的紧张。董事会成员、各部门骨干挤满了屋子,连求伯君都特意从深圳飞了回来,坐在第一排,镜片后的目光沉静如海。
    林牧站在台侧,手心微微沁汗。他瞥了一眼台下:叶文斌眉头微蹙,手指无意识地敲著扶手;老吴抱著胳膊,嘴角抿成一条直线,显然对这场“秀”不以为然;雷军坐在电脑前,脸色因为连续熬夜而有些苍白,但眼神亮得嚇人;赵磊站在雷军身后,不停推著眼镜,嘴唇翕动,仿佛在默念什么步骤。
    “开始吧。”林牧对雷军点点头,声音平稳。
    雷军深吸一口气,点击了那个他们鏖战数月、图標还是个粗糙狐狸爪印的“wps for windows预览版 0.1”。程序启动,比 dos下慢了不少,一个简单的灰色窗口出现在屏幕上,標题栏写著“wps文档查看器-[预览版]”。
    “各位领导,同事,”雷军的声音带著熬夜的沙哑,但努力保持著清晰,“这是我们迁移项目组第一阶段的核心成果。目前实现了对 wps 1.0格式文件的基本解析和渲染。”
    他操作滑鼠,打开一个预先准备好的、带有复杂表格和几种字体的测试文档。窗口內容区,文字、表格线、不同字体居然都大致正確地显示了出来!虽然滚动时仍有明显的闪烁和迟滯,排版细节也有偏差,但確確实实,一个完完全全的 dos下的 wps文件,在 windows的图形界面里被打开了!
    台下响起一片压抑的惊嘆和窃窃私语。老吴身体前倾,眯著眼盯著屏幕上的表格线,仿佛在確认那不是幻觉。叶文斌敲击扶手的手指停了下来。
    “我们还实现了基础的编辑功能。”雷军继续演示,在文档中刪除几个字,又键入新的。光標移动、字符刪除和输入,虽然慢,但逻辑正確。“目前支持通过剪贴板与 windows其他程序交换纯文本。”
    接著,是重头戏——输入法整合。雷军切换到一个空白文档,示意赵磊操作。赵磊有些僵硬地走到电脑前,手指微微发抖,按下了他们自定义的热键。屏幕右下角,一个极小、但確实存在的状態栏跳了出来,显示著“搜狗”两个字。他敲击键盘,拼音“zhong guo”出现,候选框弹出,选择,汉字“中国”成功上屏!
    “哗——”这次,台下真的忍不住了,议论声大了许多。在 windows 3.1加中文之星的环境下,实现第三方输入法的初步集成,这技术难度他们多少都懂。这证明团队不仅啃下了 windows编程的硬骨头,还在中文处理这个核心难点上取得了实质性突破!
    求伯君微微頷首,脸上露出一丝不易察觉的笑意。
    林牧心中稍定,刚准备上前做总结,並拋出下一阶段规划——
    异变陡生!
    就在赵磊准备输入第二句时,屏幕上的输入法状態栏突然疯狂闪烁起来,紧接著,整个 wps预览版窗口“凝固”了!滑鼠变成沙漏,无论怎么点都没反应。雷军脸色一变,急忙去动滑鼠,试图调出任务列表,但为时已晚。几秒钟后,熟悉的、令人心悸的蓝色背景伴隨著白色英文错误代码,充满了整个屏幕——windows保护性错误(gpf)!程序崩溃了!
    “死机了!”有人低呼。
    机房內瞬间鸦雀无声,落针可闻。刚刚的兴奋和期待,像被一盆冰水兜头浇灭。赵磊的脸“唰”地白了,僵在原地。雷军猛地握紧了拳头,指节发白。
    老吴鼻腔里发出一声几不可闻的轻哼,虽然没说话,但那意思再明显不过:花里胡哨,不堪一击。
    叶文斌的眉头皱得更紧。求伯君脸上的笑意也收敛了,静静看著。
    最要命的是,崩溃似乎引发了连锁反应,机器开始发出异常的硬碟读取声,屏幕上的蓝屏代码滚动越来越快,整个系统看起来都要不稳了。
    就在这尷尬和沮丧几乎要淹没整个房间的时刻,林牧动了。他一个箭步走到电脑前,动作快得几乎带风。
    “赵磊,强制重启。雷军,准备调试符號文件和源码。”林牧的声音斩钉截铁,没有丝毫慌乱,“其他人,演示暂时中断十分钟。问题很可能出在输入法模块与 windows imm消息处理的小概率衝突上,我们之前模擬测试覆盖不足。正好,现场解决它。”
    他的镇定如同定海神针,瞬间稳住了场面。没有人离开,所有人都屏息看著。
    机器重启,进入 dos。林牧没有进 windows,而是直接调出 debug工具,加载了雷军迅速找来的带有调试符號的程序核心 dump文件。黑色的命令行界面,白色的代码和內存地址飞速滚动。林牧的手指在键盘上敲击,快得让人眼花繚乱,嘴里低声念著一些术语:“imm_ime_control消息……上下文句柄未同步……这里,堆栈指针异常……”
    时间一分一秒过去,机房里只有键盘声和机器风扇声。十分钟眼看就要到了。
    “找到了。”林牧忽然停下,光標停在一行汇编代码上,“是输入法状態切换时,我们自定义的消息鉤子没有及时清理一个全局变量,导致 windows內核在尝试访问已释放內存时崩溃。赵磊,改这里,第 347行,增加一个空值判断和资源释放。雷军,立刻用最小补丁模式重新编译输入法 dll。”
    “明白!”赵磊和雷军如同接到军令,立刻扑到旁边的开发机上操作起来。五分钟后,一个热修补的动態连结库文件被复製过来。
    再次启动 windows,加载补丁,重新运行那个该死的预览版和输入法。所有人的心都提到了嗓子眼。
    雷军颤抖著手,重复刚才的输入操作。
    一次,正常。
    两次,正常。
    快速切换中英文,连续输入……一切正常!程序运行平稳,没有再崩溃!
    “呼——”不知道是谁先长长出了一口气,紧接著,房间里响起了稀疏但真心的掌声,迅速变得热烈起来。老吴也鬆开了抱著的胳膊,眼神复杂地看了林牧一眼。
    林牧转过身,面向眾人,脸上没有得意,只有属於技术者的冷静和一丝疲惫:“让大家见笑了。这就是研发,尤其是开拓未知领域研发的常態——充满意外和挑战。但重要的是,我们发现了问题,定位了问题,並且,”他看了一眼刚刚修復 bug的赵磊和雷军,“我们解决了它。这个插曲,恰恰证明了我们走的路是对的,遇到的困难是真实的,而我们有能力克服。”
    他走向前台,语气重新变得鏗鏘有力:“今天的演示,不仅仅展示了我们成功在 windows下打开了 wps文件,实现了初步编辑和输入法集成。更重要的是,它暴露了深水区的礁石,锻炼了我们团队的应急能力和技术深度。下一步,windows项目组的目標是:三个月內,推出功能相对完整、稳定性达到內测水平的 alpha版本!同时,dos產品线不能停,老吴,你们规划中的『wps office 1.2』行业增强版,必须按时交付,用利润给我们续足弹药!”
    “没问题!”老吴这次回答得乾脆了许多。亲眼看到 windows组的攻坚能力和林牧的应变,他心中那点不服气消减了不少。
    会议在一种劫后余生却又斗志昂扬的气氛中结束。求伯君临走前,拍了拍林牧的肩膀:“临危不乱,指挥若定,技术功底也扎实。小林,这个担子你挑得起来。”
    人群散去,只剩下核心几人。雷军瘫坐在椅子上,抹了把额头的汗:“林总,刚才真是……差点就砸了。”
    “砸不了。”林牧递给他一杯水,“真金不怕火炼。不过,这也给我们提了个醒,windows环境的复杂性和测试强度必须远超 dos时代。我们要建立更严格的代码审查和自动化测试流程。”
    赵磊还沉浸在刚才惊心动魄的调试中,眼睛发亮:“林老师,您刚才看 dump文件的速度太快了!是怎么一下子定位到那个全局变量的?”
    “经验,还有对系统机制的理解。”林牧简单道,“你以后也会有的。这次你表现不错,关键时刻没乱。接下来,输入法在 windows下的稳定性和性能优化,你和小周要负起主责。”
    “是!”赵磊用力点头。
    这时,林牧的大哥大响了。他走到窗边接通,是叶溪溪。
    “哥!听说你们今天演示?怎么样?顺利吗?”叶溪溪清脆的声音传来,带著关切。
    “出了点小意外,不过解决了。”林牧语气轻鬆,“怎么,学校里有什么事?”
    “没什么大事……就是,那个张扬,好像出院了,不过听说家里公司那摊子事够他喝一壶的,好像要举家搬去南方了。”叶溪溪的声音带著一丝如释重负,“还有,我们学校计算机课,下学期可能真的要正式採购你们的校园版了!系主任今天还问我呢!”
    “好事。”林牧笑了,窗外的阳光正好刺破云层,洒在中关村高低错落的楼宇上,“看来,我们的『播种计划』,开始发芽了。”
    掛掉电话,林牧望向远方。演示会的惊魂一刻已经过去,但它像一次淬火,让团队更加凝聚,也让前进的方向在挫折中愈发清晰。dos的根基要更深,windows的突破要更快,市场的种子要更广地播撒。
    而他知道,更大的风浪,或许就在不远的前方。但此刻,他麾下的这艘船,船员更加精干,目標更加明確。
    “雷军,赵磊,”他转身,目光灼灼,“休息半天。明天开始,新的攻坚计划,启动!”