Hacker News 中文摘要

RSS订阅

Microsoft Word for Windows 1.1a 原生X64移植版 -- Microsoft Word for Windows 1.1a, Native X64 Port

文章摘要

该项目将微软Word 1.1a的原始源代码移植为原生64位Windows可执行文件,保留了原版应用体验,无需模拟器或现代编辑器控件。构建需64位Windows、Visual Studio 2022、CMake 3.25以上及PowerShell。

文章总结

该项目是一个将微软Word for Windows 1.1a(历史代号“Opus”)移植到原生x64架构的完整实现。它通过现代代码替换了原有的16位汇编、分段内存和Win16平台限制,使原始Word应用能以64位Windows可执行文件的形式运行,而非模拟器或重新实现。

运行要求:64位Windows系统、Visual Studio 2022(需安装“使用C++的桌面开发”工作负载)、Windows 10/11 SDK、CMake 3.25或更新版本、PowerShell。

构建与运行:克隆仓库后,在PowerShell中依次执行配置和构建命令。例如,调试版本使用cmake --preset x64-debugcmake --build --preset x64-debug,然后运行..\bin\WORD1.exe。发布版本则使用x64-release预设。生成的Visual Studio解决方案位于out\MicrosoftWordX64Port.sln,可将WORD1设为启动项目。

测试:从仓库根目录运行ctest --test-dir .\out -C Debug --output-on-failure执行完整调试测试套件,涵盖x64运行时、原始Word数据结构、命令表、进程启动及自动化UI工作流(如输入、选择、格式、对话框和保存)。

项目结构:核心源码位于src/Opus/(原始应用)和src/OpusEtAl/(支持工具),移植层在src/port/original/(x64兼容层和测试)和src/port/tools/(构建工具替代品)。out/build/bin/为本地生成目录。

移植原理:保留原始C和资源文件作为权威实现,仅添加必要的平台适配:将16位x86汇编入口点转为固定宽度C/C++,映射分段内存句柄到x64安全运行时,调整Win16启动、消息、图形、文件和资源行为以适配Win32 API,并通过单元测试、运行时测试和UI测试确保兼容性。

贡献指南:修改应保持原始Word行为,确保所有原生接口指针宽度安全,优先采用源等效翻译,在移植边界隔离必要的Windows API适配,并为新增翻译行为添加针对性测试。

版权说明:历史源文件保留原始微软及第三方版权声明,仓库当前未包含顶层许可证文件,分发前需审查适用权利。

评论总结

根据评论内容,总结主要观点如下:

1. 项目展示与文档不足
- 评论1(评分None,作者ulfw):建议添加截图以增强展示效果。
"A screenshot or two would have been nice"

2. 项目名称的历史巧合
- 评论2(评分None,作者zatkin):指出项目代号"Opus"与Anthropic的LLM模型同名,引发趣味联想。
"Not to be confused with the Anthropic LLM model Opus - what was once an old codename is as good as new once again!"

3. 构建问题
- 评论3(评分None,作者spider-mario):报告构建时缺少cmake/GenerateMenuHelpHeader.cmake文件。
"Tried to build it but it references a cmake/GenerateMenuHelpHeader.cmake that seems to be absent from the repository?"

4. 跨平台移植需求
- 评论4(评分None,作者BaudouinVH):询问移植到Linux的难度。
"how complicated would a port to linux be ?"
- 评论5(评分None,作者acmdas):表达对Word 5(curses版)和Word/Excel '98移植的期待,并批评后续版本UI恶化。
"I'd be very happy to see that ported to Linux... IMHO things went South after that... the UI went steadily to sht."*

平衡性总结
- 正面反馈:项目本身受关注,历史代号引发趣味讨论。
- 改进建议:需补充截图、修复构建问题、考虑Linux移植。
- 争议点:部分用户认为Office 98后版本UI质量下降,但未获其他评论支持。