Win98 is gone

Win98早已被MS抛弃,不过至少VC2005编译的程序仍然可以在98下运行。但是如今, 随着2008的发布,Win98终于完全被无视,悼念一下。

VC2005的时候,虽然官方没有提供对Win98的正式支持,但是ANSI方式编译的程序仍然可以正常运行。对于使用Unicode方式编译的程序,相对而言麻烦一些。因为Win98本身对Unicode的支持很差,所以要借助Microsoft Unicode Layer提供的API。
你需要一些额外的工作确保unicows中的API被首先链接,同样对于MFC中通过LoadLibrary+GetProcAddress动态加载的Unicode API,你也需要将它们改成从unicows.dll加载。
How to build the 8.0 MFC and the CRT DLLs with MSLU

记得2005刚发布时,我为了这个问题还专门在MSDN Forum上提问,其间得到了Ted的大力帮助,并且成功将2005Unicode方式编译的程序移植到了Win98,想来颇有一番感慨。
Re: Visual Studio 2005 MFC Applications on Windows 98

现如今,VC2008生成的EXE会直接在PE的header中指定OSMajorVersion为5。换言之,它强制规定了程序只能在Win2000及以上的系统运行。虽然我们可以人肉把这个限制去掉,但是因为CRT和MFC库在设计的时候不再考虑对Win98的向下兼容性,用到了一些Win2000以上才有的API(诸如GetFileSizeEx),想在Win98上运行这样的程序就很困难了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值