加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 双模式可执行文件是否可行?

发布时间:2020-12-14 04:38:39 所属栏目:Windows 来源:网络整理
导读:有点历史…我有3个系统,我花时间,DOS 6.22系统,Windows 95系统和现代Windows 7(64位)系统.当我升级到Win7-64时,我最喜欢的一些命令行实用程序停止工作,所以我决定自己重新编写它们.我只有2个编译器是Borland Turbo C 3.0和Visual Studio 2008,它们可以很好地
有点历史…我有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中,链接器部分应该有一个“附加选项”设置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读