首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C和Windows Vista中的Dos.h + Pc.h

C和Windows Vista中的Dos.h + Pc.h
EN

Stack Overflow用户
提问于 2013-01-28 18:48:24
回答 3查看 1.1K关注 0票数 0

目前,我希望与Mesa3D合作,创建一个用OpenGL绘制的图形应用程序。

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

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

  • dos.h
  • pc.h

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

它们似乎是在DJGPP编译器中找到的,该编译器仅在DOS下工作,在Vista中不受支持,甚至在可压缩模式下也是如此。运行DosBox仍然无法使其工作。

我想知道--也许有一个新的函数取代了outportb,或者我可以用我的C/C++编译器和VS或PellesC使用这些DJGPP文件(我觉得它更适合于C-纯程序)?

此外,conio.h包含VS和PellesC的文件没有textmode()函数,但是DJGPP版本有。

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

EN

回答 3

Stack Overflow用户

发布于 2013-01-28 19:01:13

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

票数 1
EN

Stack Overflow用户

发布于 2013-01-28 19:21:49

在现代的Windows环境中,像outportb这样的低级别硬件访问是不可用的。这些功能是为特别受信任的代码(OS内部和驱动程序)保留的。您需要通过更高级别的API或驱动程序来访问相同的功能。

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

票数 1
EN

Stack Overflow用户

发布于 2013-01-28 18:50:33

不要在vista和更高的地方使用16位编译器。相反,使用DOSBOX运行您的程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14568986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档