Ошибка: размер в памяти неизвестен
В описании функции int86x (http://www.codenet.ru/progr/cpp/spr/245.php) есть пример:
#i
Код:
#include<dos.h>
#include<process.h>
#include<stdio.h>
int main(void)
{
char filename[80];
union REGS inregs,outregs;
struct SREGS segregs;
printf("Введите имя файла:");
gets(filename);
inregs.h.ah = 0x43;
inregs.h.al = 0x21;
inregs.x.dx = FP_OFF(filename);
segregs.ds = FP_SEG(filename);
int86x(0x21,&inregs,&outregs,&segregs);
printf("Атрибуты файла: %X\n",outregs.x.cx);
return 0;
}
#include<process.h>
#include<stdio.h>
int main(void)
{
char filename[80];
union REGS inregs,outregs;
struct SREGS segregs;
printf("Введите имя файла:");
gets(filename);
inregs.h.ah = 0x43;
inregs.h.al = 0x21;
inregs.x.dx = FP_OFF(filename);
segregs.ds = FP_SEG(filename);
int86x(0x21,&inregs,&outregs,&segregs);
printf("Атрибуты файла: %X\n",outregs.x.cx);
return 0;
}
C:\MinGW\bin>gcc ../t.c -o 3d.exe
../t.c: В функции <main>:
../t.c:8:15: ошибка: размер <inregs> в памяти неизвестен
../t.c:8:22: ошибка: размер <outregs> в памяти неизвестен
../t.c:9:17: ошибка: размер <segregs> в памяти неизвестен
../t.c: В функции <main>:
../t.c:8:15: ошибка: размер <inregs> в памяти неизвестен
../t.c:8:22: ошибка: размер <outregs> в памяти неизвестен
../t.c:9:17: ошибка: размер <segregs> в памяти неизвестен
Собственно, вопрос: в чем может быть проблема? Гугл ответов не дал, я в затруднении :)
Насколько я знаю, mingw только под вындоус работает. Там другой dos.h и в нем действительно нет ни REGS ни SREGS. Если нужен досовский gcc -- попробуйте DJGPP.
Переменная среды INCLUDE может указывать на чужие инклюды.
Цитата: Ustus
<dos.h> правильный находит? Может, еще один компилятор стоит, борланд, например, ватком?
Переменная среды INCLUDE может указывать на чужие инклюды.
Переменная среды INCLUDE может указывать на чужие инклюды.
Да, правильный. Других компиляторов нет. То есть у вас данный код нормально компилится, проблема у меня?
Цитата: Ustus
Теперь всё отлично, спасибо!