Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
C++ C/C++;DOS.h中的REGS union不再可用。还有别的选择吗?_C++ - Fatal编程技术网

C++ C/C++;DOS.h中的REGS union不再可用。还有别的选择吗?

C++ C/C++;DOS.h中的REGS union不再可用。还有别的选择吗?,c++,C++,我不得不使用一个大约二十年前写的非常古老的图书馆。我几乎完全编译了它,除了一个使用REGS并集的部分。从我所做的谷歌搜索来看,REGS是DOS.h文件中中断处理的一部分。嗯,看看DOS.h的现代版本,我们看不到任何REGS定义 互联网上的一些帖子说它是Borland或Turbo编译器所独有的,但这段代码是为在许多不同的编译器下工作而编写的 你知道我该怎么做吗?是否有一个旧的DOS.h文件可以运行 使用:Visual Studio 2010,从命令行编译。创建REGS联合是最简单的问题。在受保护模

我不得不使用一个大约二十年前写的非常古老的图书馆。我几乎完全编译了它,除了一个使用REGS并集的部分。从我所做的谷歌搜索来看,REGS是DOS.h文件中中断处理的一部分。嗯,看看DOS.h的现代版本,我们看不到任何REGS定义

互联网上的一些帖子说它是Borland或Turbo编译器所独有的,但这段代码是为在许多不同的编译器下工作而编写的

你知道我该怎么做吗?是否有一个旧的DOS.h文件可以运行


使用:Visual Studio 2010,从命令行编译。

创建
REGS
联合是最简单的问题。在受保护模式的操作系统下,应用程序不能在任何时候调用中断。如果他们尝试,系统会阻止他们

更好的方法是寻找使用WindowsAPI实现它的方法

编辑

上面的评论假设您正在进行现代Windows开发,我想这是一个假设。除了您正在使用的工具之外,除了没有说明您正在尝试完成的任务之外,您实际上没有说明您正在开发的应用程序的类型(命令行、窗口、32位、64位等)


如果您正在开发16位DOS,那么您仍然可以执行中断操作。

几乎您唯一能做的就是了解他们对REG的操作,并在更高级别上执行(尽可能接近)相同的操作。在大多数情况下,REGS被用来调用DOS函数,其中大多数都有可以在Windows下作为普通函数调用的等价函数。另一些是使用BIOS功能,这些功能(同样)大部分都有实现相同功能的功能


然而,在不知道REG完成了什么的情况下,不可能猜到替代品将是什么。

您需要它到底是为了什么?你不再写16位代码了。@CatPlusPlus不,我没有写16位代码。但是如果可能的话,我想避免修改代码。代码是一个旧的数学库。我希望我能说得更多,但我不能。周围有成吨的现代数学图书馆。。这部电影有什么特别的地方使它如此必要吗?@Collin,是的。这是一个奇怪的解释,但我们需要一组插值/样条函数,这个库——虽然很旧——提供了最好的解决方案。我会深入讨论细节,但这会偏离主题。我感兴趣的是将其编译成一个可以在现代应用程序(即c#应用程序)中使用的库。这是一个数学函数库,实际上就是这样。根据新的信息,我可以说中断不是正确的方法。很抱歉,“数学函数库”没有提供足够的信息来说明哪些API可能有用。