Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以Windows 98为目标?_Windows_Visual Studio_Windows 98 - Fatal编程技术网

如何以Windows 98为目标?

如何以Windows 98为目标?,windows,visual-studio,windows-98,Windows,Visual Studio,Windows 98,我迫切需要为Windows 98开发一个应用程序,并且没有使用不同操作系统的选择。在这个时代,有没有什么现代的SDK可以用来开发应用程序?最棒的是,如果有办法从VisualStudio2015中瞄准Windows98,但据我所知,没有办法做到这一点 我可以使用Visual Studio 2015为Windows 98编写和编译应用程序吗?如果不是,那么我的下一个最佳选择是什么?我假设您正在编写本机代码:Windows 98使用Win32 API,就像XP和现代Windows版本一样。有些东西是不

我迫切需要为Windows 98开发一个应用程序,并且没有使用不同操作系统的选择。在这个时代,有没有什么现代的SDK可以用来开发应用程序?最棒的是,如果有办法从VisualStudio2015中瞄准Windows98,但据我所知,没有办法做到这一点


我可以使用Visual Studio 2015为Windows 98编写和编译应用程序吗?如果不是,那么我的下一个最佳选择是什么?

我假设您正在编写本机代码:Windows 98使用Win32 API,就像XP和现代Windows版本一样。有些东西是不同的,例如缺少VirtualAllocEx()之类的API。如果您避免使用这些API(每个API都有一个最低要求部分)并编写本机代码,那么您的程序也应该在Windows 98上运行。如果您在VisualStudio中遇到问题,您可以使用良好的旧gcc和IDE,如Eclipse、Code::Blocks等。只需确保您没有为64位平台编译它。否则,您将得到一个无法在Windows 98上运行的PE+二进制文件

编辑:

根据评论部分的讨论,有一些更新:尽管32位PE(在现代Windows框中编译)与Windows 98兼容,但Visual Studio可能会因其运行时库而出现问题。作为替代方案,您可以尝试

  • 无运行时编译
  • 使用MingW就像它使用msvcrt.dll一样

尽管如此,由于MSDN中的更新,检查哪个Windows版本支持某些API仍然很困难。在这一点上,旧版本的MSDN可能会有所帮助。

其实并没有那么简单。使用VS2015默认设置构建的可执行文件甚至不会在Windows XP上运行,更不用说Windows 98了。(我不知道为什么,不同版本的PE格式还是什么的?)有两个主要版本,PE和PE+。后者是64位的。我没有尝试过使用VisualStudio,但是一个使用MinGW编译的PE可执行文件应该在Win98上运行,它使用支持的Win32 API。我不确定自动生成的存根(例如异常处理程序),但在这种情况下,旧版本的mingw可能会有所帮助。我不明白为什么我会在这里投反对票。根据默认VS2012设置构建的可执行文件无法在XP上运行的唯一原因是运行时使用了更新的API。可能是错误消息“不是有效的Win32应用程序”误导了我。MinGW可能不会有这个问题,因为它使用msvcrt.dll而不是拥有自己的运行时。(不是我的反对票,但你的回答似乎没有抓住要点。例如,OP可能已经知道他必须坚持使用Windows 98中可用的API。编辑可能是一个好主意,重点关注使用MinGW的非常合理的建议,包括解释为什么这可能会起作用,例如,因为它使用内置的APImsvcrt.dll。)@HarryJohnston哦,好的,这很有趣。我不知道我不能相信MSDN的Windows最低版本要求。