Hallo, guten Tag.
Ich habe mit Turbo C++ Version 3.0 eine Objekt-Datei erzeugt die ich in TP 6.1 getestet habe und funktioniert.
C++ Datei :
C
#include <dos.h>
#include <conio.h>
#include <io.h>
#include <ctype.h>
#define VIDEO_SEGMENT 0xA000
#define SCREEN_WIDTH 320
void SetTextMode ()
{
_AH = 0;
_AL = 0x03;
geninterrupt (0x10);
}
void SetMode13h ()
{
_AH = 0;
_AL = 0x13;
geninterrupt (0x10);
}
void PutPixel (int x, int y, unsigned char color)
{
pokeb (VIDEO_SEGMENT, (y * SCREEN_WIDTH) + x, color);
}
void vga_cls ()
{
long y;
for (y = 0; y <= 64000; y++)
{
pokeb (VIDEO_SEGMENT, y, 0);
}
}
void sprite(int zx ,int zy,unsigned char color)
{
int x,y;
for (y = zy; y <= zy+16; y++)
{
for (x =zx; x <= zx+16; x++)
{
PutPixel (x,y,color);
}]
}
}
Alles anzeigen
Spielprogramm von TP 6.0 :
Code
program xvga;
uses Crt;
{$L pebi-pas\xvga.OBJ}
procedure SetTextMode; external;
procedure SetMode13h; external;
procedure PutPixel(X,Y : Integer; Col : Byte); external;
procedure sprite(X,Y : Integer; Col : Byte); external;
procedure vga_cls; external;
begin
SetMode13h;
vga_cls;
PutPixel(160,100,12);
sprite(50,50,14);
Repeat
Until keypressed;
SetTextMode;
end.
Alles anzeigen
spiel.bas von QBX:
Code
CLS
do
INPUT "Gib deine Note ein (1...6): ", Note%
SELECT CASE Note%
CASE 1: PRINT "sehr gut"
CASE 2: PRINT "gut"
CASE 3: PRINT "befriedgend"
CASE 4: PRINT "ausreichend"
CASE 5: PRINT "mangelhaft"
CASE 6
PRINT "ungenuegend"
PRINT "Die Versetzung ist gefaehrdet!!!"
CASE ELSE: PRINT "Diese Note gibt es nicht."
END SELECT
loop
Alles anzeigen
Nun habe ich die Obj-Datei von C++ mal mit dem QBX-Basic verbunden:
Der LINK funktioniert , keine Fehlermeldung :
LINK spiel.obj + turboc.obj
Es ist mir nicht klar, was ich jetzt noch für eine Datei erzeugen muss ,um die Befehle vom C++-Objekt in meinem QBX-Programm nutzen kann und wie ich die in meinem QBX-Programm aufrufen kann?
Danke.
Gruss