windows – 双模式可执行文件是否可行?
有点历史…我有3个系统,我花时间,DOS 6.22系统,Windows 95系统和现代Windows 7(64位)系统.当我升级到Win7-64时,我最喜欢的一些命令行实用程序停止工作,所以我决定自己重新编写它们.我只有2个编译器是Borland Turbo C 3.0和Visual Studio 2008,它们可以很好地构建2个版本,DOS 16位和Windows 7 32位(我猜也可以构建64位版本). )问题出在我的Win95系统上. DOS版本在那里运行良好,但由于我花时间在Win7版本中支持LFN,我想用它的Win95系统.因此,经过大量的研究,我发现并购买了Visual Studio 6(最后一个根据我研究的Win95支持)复制代码(当然必须重写部分)并且它编译得很好,并且工作正常:)
下次我必须在DOS模式下启动Win95系统时出现问题.程序停止工作(当然,因为Win95没有加载).我真的不想安装2个程序副本(需要2个不同的文件名),所以我希望有一种方法可以将2个版本链接到一个文件中.如果我在DOS中执行它,而不是说它需要窗口,它只会跳转到程序的DOS部分.这样,它将是一个单独的程序,如果加载Win95则支持LFN,如果没有加载Win95则不支持.由于Win95版本在Win7-64中也可以正常工作,它可能还会产生一个适用于所有3个系统的单一版本(这将是一个额外的好处.) 我做了一些网络搜索,找不到与我正在寻找什么密切相关的东西.所以我不知道它是否可能.我可能必须得到另一个编译器,但考虑到它将有多大,我可能负担得起.我的网络搜索确实产生了让我相信它“应该”成为可能的信息.它只需要一个不同于一个Windows编译器输入的exe头.它可能需要我重写DOS版本为32位并使用DOS扩展器(对于保护模式,假设我找不到方法将它包含在文件本身中.)这是可以接受的(虽然不理想.)我宁愿在DOS部分使用16位代码,在Windows部分使用32位代码(为了最兼容.) 有没有人有关于这样的事情的任何信息?如果你能指出我正确的方向,我将不胜感激. 解决方法
Visual Studio 6的文档描述了/ STUB选项
here,只需将其指向程序的DOS版本即可.
我没有VS6方便,所以我不能太具体,但在项目设置GUI中,链接器部分应该有一个“附加选项”设置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2008 – Windows Server上的内存使用情况
- 在win32 C中如何启用静态文本控件来复制文本?
- Windows Git安装与使用
- 关于WIN10连接WIN7共享打印机的方法
- Leetcode 480. Sliding Window Median
- 在Go中,如何自动将循环索引强制转换为uint?
- windows-phone-7 – Windows phone 7 messageBox声音
- windows-mobile – Windows Mobile 6开发,视觉工作室的替代
- windows-server-2008-r2 – 为什么我不能使用Domain Admins
- [Daily Coding Problem] 18 (LeetCode 239). Sliding Windo
- .net – Windows XP和7之间发生了什么变化,导致我
- windows-server-2008 – 修改MDT向导以自动执行计
- 如果不是交互式的,Microsoft Access VBA的mySQL查
- windows-phone-7 – 如何更新Windows Phone市场上
- winapi – 什么是更改屏幕刷新率的Windows API?
- msi – Microsoft Web部署服务无提示安装
- Windows – 尝试不同文件的asmx应用程序的服务器
- windows-server-2012 – 当出现故障时,可以将存储
- DLL的显式调用与隐式调用
- Windows NTP服务器A Stratum为2,Windows NTP Ser