关于网友提出的“ dosh头文件中的问题”问题疑问,本网通过在网上对“ dosh头文件中的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: dosh头文件中的问题
描述: 我在网上摘了下面的程序,用borland c++4.5编译的时候能通过,但是用vc++6.0就不能通过.
发现vc在对这句union REGS reg;编译的时候,说没有定义这个REGS联合,
我查看了BC++和VC++中的DOS.H头文件是不一样的.
现在我在在vc++中编译通过,我要include那个头文件来替换dos.h???
#include "dos.h"
#include "stdlib.h"
#include "stdio.h"
#define PORT 0
...
void InitPort(int port,unsigned char para); /*初始化端口*/
...
main(int argc,char *argv[])
{
if(argc<2)
{
printf("Please input R(receive) or S(sent) parametre:");
exit(1);
}
InitPort(PORT,231);
if(*argv[1]==''''S'''') /*检查选择的有效性*/
SendFile(argv[2]);
else if(*argv[1]==''''R'''')
ReceiveFile();
else
{
printf("Error parament.Please input again.");
exit(1);
}
}
...
void InitPort(port,para)
int port;
unsigned char para;
{
union REGS reg;
reg.x.dx=port;
reg.h.ah=0;
reg.h.al=para;
int86(0x14,®,®);
}
解决方案1: #include "dos.h"
#include "stdlib.h"
#include "stdio.h"
改为
#include
#include
#include
编译器会自动在其配置的路径去找dos.h这个头文件,
你可以带路径的指定:如#include "d:\\...\\dos.h"
解决方案2: vc6.0是32位windows编译器,它运行在windows保护模式下,不再支持DOS下直接寄存器访问了(包括DOS中断调用)。
以上介绍了“ dosh头文件中的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2743793.html