我目前正在寻找使用Mesa3D来创建一个使用OpenGL的软件渲染图形应用程序。
我现在正在寻找一些关于如何使用它的教程,其中很多是用DOS或旧版本的Windows编写的。当我运行Vista时,我似乎没有我需要的正确文件。
我使用的Mesa3D教程使用outportb()
和其他一些我似乎无法工作的命令。环顾四周后,我发现你需要2个包含文件:
在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上工作,或者允许我使用DJGPP的dos,pc和conio.h文件,无论是VS还是PellesC,这都是一个很好的帮助!
答案 0 :(得分:1)
端口操作函数在Win32程序中根本不起作用。使用Win32 API进行I / O(包括渲染)或坚持使用DOS并在DOS或任何可以找到的DOS模拟器中运行程序。 Vista和更高版本的Windows不会直接运行大多数DOS程序,因为对DOS的支持要么严重减少要么完全删除(例如在64位Windows中)。
答案 1 :(得分:1)
现代Windows环境中的程序无法使用outportb
等功能的低级硬件访问。此类功能保留用于特别受信任的代码(OS内部和驱动程序)。您需要浏览更高级别的API或驱动程序才能访问相同的功能。
Mesa3D网站有a readme for Windows developers,其中包含有关您需要安装和配置的信息。它还引用了一些可用作项目基础的官方演示代码。 Mesa3D website也有a repository full of demo programs,它可能是您提到的过时教程的更好示例。
答案 2 :(得分:0)
不要在vista及更高版本上使用16位编译器..而是使用DOSBOX运行程序。