0

我目前正在寻找与 Mesa3D 一起使用 OpenGL 创建软件渲染图形应用程序。

我现在正在寻找一些关于如何使用它的教程,其中许多都是用 DOS 或旧版本的 Windows 编写的。当我运行 Vista 时,我似乎没有我需要的正确文件。

我正在使用的 Mesa3D 教程outportb()和其他一些我似乎无法正常工作的命令。环顾四周后,我发现您需要 2 个包含文件:

  • DOS.h
  • 个人计算机

这些似乎在 Visual Studio 2010 (Express) 附带的 Window SDK 中找不到,甚至在我目前拥有的 2005 (Professional) 的旧版本中也找不到。

它们似乎可以在DJGPP编译器中找到,该编译器仅在 DOS 下工作,在 Vista 中不受支持,即使在兼容模式下也是如此。运行 DosBox 仍然无法使其正常工作。

我想知道 - 是否可能有新功能替换outportb或者我可以将这些 DJGPP 文件与我的 C/C++ 编译器与 VS 或 PellesC 一起使用(我发现它更适合纯 C 程序)?

此外,我在 VS 和 PellesC 中拥有的conio.h包含文件没有该textmode()功能,但 DJGPP 版本有。

如果有人可以帮助让 DJGPP 在 Vista 上工作或允许我使用 VS 或 PellesC 的 DJGPP 中的 dos、pc 和 conio.h 文件,那将是一个很大的帮助!

4

3 回答 3

1

outportb现代 Windows 环境中的程序无法使用类似功能的低级硬件访问权限。这些功能是为特别受信任的代码(操作系统内部和驱动程序)保留的。您需要通过更高级别的 API 或驱动程序才能访问相同的功能。

Mesa3D 网站为 Windows 开发人员提供了自述文件,其中包含有关您需要安装和配置的信息。它还引用了一些官方演示代码,您可以将其用作项目的基础。Mesa3D网站还有一个充满演示程序的存储库,这些程序可能比您提到的过时教程提供更好的示例。

于 2013-01-28T19:21:49.547 回答
1

端口操作函数在 Win32 程序中根本不起作用。要么使用 Win32 API 进行 I/O(包括渲染),要么坚持使用 DOS 并在 DOS 或任何你能找到的 DOS 模拟器中运行你的程序。Vista 和更高版本的 Windows 不会直接运行大多数 DOS 程序,因为对 DOS 的支持要么被严重减少,要么被完全删除(例如在 64 位 Windows 中)。

于 2013-01-28T19:01:13.617 回答
0

不要在 vista 和更高版本上使用 16 位编译器。而是使用 DOSBOX 来运行您的程序。

于 2013-01-28T18:50:33.497 回答