!!!Borland C++ v5.02 32-bit DOS - bledy kompilacji !!!



Widzisz wersję archiwalną tematu "!!!Borland C++ v5.02 32-bit DOS - bledy kompilacji !!!" z forum pl.comp.programming





Tomasz Kaszuba - 19 Lut 1998, 03:00

 !!!  POMOCY  !!!!!!!!!!! !!! !

Podczas kompilacji z linii polecen (bcc32.exe test.cpp) pojawia sie
nastepujacy blad.
Bledu tego nie ma przy kompilacji 16-bit (bcc.exe).
    Prosze o pomoc, moze wymagane sa jakies parametry do kompilacji
programu 32-bit C++ dla DOS.

 'test.cpp'
-------------------------------------
#include <stdio.h
#include <conio.h
#include <dos.h

#define VIDEO 0x10

void movetoxy(int x, int y)
{
 union REGS regs;

   regs.h.ah = 2;  /* set cursor position */
 regs.h.dh = y;
   regs.h.dl = x;
   regs.h.bh = 0;  /* video page 0 */
 int86(VIDEO, &regs, &regs);

}



int main(void)
{
 clrscr();
 movetoxy(35, 10);
 printf("Hello\n");
 return 0;
}



-------------------------------------

(c:\bcc32 test.cpp) ! ! ! !  (below is the result ...)

Borland C++ 5.2 for Win32 Copyright (c) 1993, 1997 Borland International

test.cpp:
Error test.cpp 9: Undefined structure 'REGS' in function
movetoxy(int,int)
Error test.cpp 9: Size of 'regs' is unknown or zero in function
movetoxy(int,int)
Error test.cpp 9: Undefined structure 'REGS' in function
movetoxy(int,int)
Error test.cpp 11: 'h' is not a member of 'REGS' in function
movetoxy(int,int)
Error test.cpp 12: 'h' is not a member of 'REGS' in function
movetoxy(int,int)
Error test.cpp 13: 'h' is not a member of 'REGS' in function
movetoxy(int,int)
Error test.cpp 14: 'h' is not a member of 'REGS' in function
movetoxy(int,int)
Error test.cpp 15: Call to undefined function 'int86' in function
movetoxy(int,int)
Warning test.cpp 16: Parameter 'x' is never used in function
movetoxy(int,int)
Warning test.cpp 16: Parameter 'y' is never used in function
movetoxy(int,int)
*** 8 errors in Compile ***

Z gory dziekuje za pomoc !



Kamil Konieczny - 20 Lut 1998, 03:00


#include <stdio.h
#include <conio.h
#include <dos.h

#define VIDEO 0x10

void movetoxy(int x, int y)
{
 union REGS regs;

   regs.h.ah = 2;  /* set cursor position */
 regs.h.dh = y;
   regs.h.dl = x;
   regs.h.bh = 0;  /* video page 0 */
 int86(VIDEO, &regs, &regs);
}



w trakcie kopilacji bcc32 masz zdefiniowana stala WIN32
popatrz sobie do naglowka conio.h dos.h
lub jeszcze lepiej - zdefinuj ta stala i przepusc dos.h przez cpp32

w win32 nie mozesz uzywac struktury REGS
oraz funcji int86


Przemek Borys - 20 Lut 1998, 03:00


union REGS regs;
  regs.h.ah = 2;  /* set cursor position */



Ludziki!
Czemu wy tak po przechodzeniu z pascala myślicie!
Czyż nie ładniej i czytelniej jest zrobić wstawkę asmową, lub wykorzystać
predefiniowane symbole _AX, _BX, itd, oraz geninterrupt()?

Jaroslaw Lis - 21 Lut 1998, 03:00






: union REGS regs;
:   regs.h.ah = 2;  /* set cursor position */

: Ludziki!
: Czemu wy tak po przechodzeniu z pascala myślicie!
: Czyż nie ładniej i czytelniej jest zrobić wstawkę asmową, lub wykorzystać
: predefiniowane symbole _AX, _BX

A masz pewnosc ze ladowanie _BX nie zajedzie Ci juz zaladowanego _AX ?

J.



Tomasz Murawski - 22 Lut 1998, 03:00

On 21 Feb 1998 20:49:01 GMT, "Jaroslaw Lis"


: Czyż nie ładniej i czytelniej jest zrobić wstawkę asmową, lub wykorzystać
: predefiniowane symbole _AX, _BX

A masz pewnosc ze ladowanie _BX nie zajedzie Ci juz zaladowanego _AX ?



Odpowiednie struktury w plikach naglowkowych sa odpowiednio
zdefiniowane i mozna miec pewnosc.

                                                Bunny


Jaroslaw Lis - 22 Lut 1998, 03:00





: On 21 Feb 1998 20:49:01 GMT, "Jaroslaw Lis"
: : Czyż nie ładniej i czytelniej jest zrobić wstawkę asmową, lub wykorzystać
: : predefiniowane symbole _AX, _BX
:
: A masz pewnosc ze ladowanie _BX nie zajedzie Ci juz zaladowanego _AX ?

: Odpowiednie struktury w plikach naglowkowych sa odpowiednio
: zdefiniowane i mozna miec pewnosc.

Tylko ze jak napiszesz:

_BX=i;
_AX=table[j];
geninterrupt();

to co pomoga dobrze zdefiniowane struktury?

J.

P.S. Jakie struktury?


Przemek Borys - 22 Lut 1998, 03:00


: Czyż nie ładniej i czytelniej jest zrobić wstawkę asmową, lub wykorzystać
: predefiniowane symbole _AX, _BX
A masz pewnosc ze ladowanie _BX nie zajedzie Ci juz zaladowanego _AX ?



Tak. Teoretycznie kompilator powinien to tłumaczyć bezpośrednio na sekwencję
mov'ów, a w żadnym wypadku nie powinien niszczyć stanu rejestrów.
Używanie tych symboli ma jeszcze jedną zaletę - kompilator potrafi je
optymalizować. A wstawki asmowe po prostu przepisuje.

Qrczak - 23 Lut 1998, 03:00


Tak. Teoretycznie kompilator powinien to tłumaczyć bezpośrednio na sekwencję
mov'ów, a w żadnym wypadku nie powinien niszczyć stanu rejestrów.



Przetłumacz proszę sekwencją movów:

_AX = funkcja1();
_BX = funkcja2();

kompilacja programu z perelek programowania..
albo ja albo borland ;-)
DOS: file handle -> file name
Nowa ksiazka o bezpieczenstwie w Internecie
  • nowa fm ack there s a zombie in the basement
  • wisconsin lottery
  • indeks;1080
  • titanic torrent
  • sims gry i ubieranki
  • allegro palety AGD
  • zrub wlasny baner
  • Raport Wernera
  • allegro pl Gołębie
  • Katalog wypowiedzi z for internetowych ^^ Strona Główna