我获得了修改1992年建立的MS-DOS程序的源代码。我有EXE文件,它运行正常,但我需要修改源代码。源代码需要以下标题进行编译。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <dos.h>
#include <dir.h>
#include <alloc.h>
#include <ctype.h>
#include <string.h>
#include <mem.h>
#include <values.h>
有谁知道使用了什么,是否有任何现代编译器可以处理这个?我尝试使用Visual Studio 2010和GCC“开箱即用”,但它失败了,因为缺少一些头文件(dir.h,alloc.h,mem.h,values.h)
答案 0 :(得分:8)
询问它需要具有哪些函数声明,类型声明,全局变量声明和宏可能更有趣。只要它们都在那里,那些东西在标题中的特殊排列就不是很有趣。
所以注释掉有问题的#includes
并让编译器抱怨它丢失的位。 然后你知道你在找什么。
答案 1 :(得分:5)
您可以尝试使用Open Watcom编译器,它是为数不多的构建16位DOS可执行文件的相对最新的编译器之一。除了找到旧的MS或Borland编译器(或最初使用的任何编译器)之外,这可能是最简单的路径。
如果要重建不同的平台而不是再次重建DOS,则可能需要对程序本身进行大量更改。这可能是值得的,但可能需要做很多工作并且会有很多令人惊讶的问题。
答案 2 :(得分:4)
您可以尝试使用DJGPP。根据{{3}},它可能包含您需要的标题。
答案 3 :(得分:3)
有Turbo C++ 1.01,但不那么现代,似乎也有所有这些头文件。我偶尔也会用它。
答案 4 :(得分:1)
a)删除所有头文件 b)尝试编译 c)查找未定义的函数/类型为int的头文件 d)添加头文件 e)重复