Error: Unresolved external '_initgraph' referenced from ...

Status
Niet open voor verdere reacties.

erikiej1

Gebruiker
Lid geworden
29 apr 2008
Berichten
138
HELPMIJ!

ik probeer dit programmaatje te compilen met Borland C++ 5.5 :

#include <graphics.h>
#include <iostream>

using namespace std;

int main(){
int driver=VGA, mode=VGAHI;
initgraph( &driver, &mode, "" );
setbkcolor( WHITE );
setcolor( RED );

line(100,100,200,200);

cin.get();
closegraph();
}


Maar dan komen er 5 errors:
- Error: Unresolved external '_initgraph' referenced from C:\[mijnmap]\[mijnbestand].obj
- Error: Unresolved external '_setbkcolor' referenced from C:\[mijnmap]\[mijnbestand].obj
- Error: Unresolved external '_setcolor' referenced from C:\[mijnmap]\[mijnbestand].obj
- Error: Unresolved external '_line' referenced from C:\[mijnmap]\[mijnbestand].obj
- Error: Unresolved external '_closegraph' referenced from C:\[mijnmap]\[mijnbestand].obj

Ik heb windows Vista, als iemand me kan helpen zou dat heel fijn zijn :D...
 
"Het bestand libbgi.a moet meegelinkt worden. Je kan het bestand libbgi.a in je library map zetten."

Maar waar moet dat danin Borland C++ 5.5?
die dingen meelinken?
 
Bij Borland weet ik het eigenlijk niet precies, ik heb nl. een andere compiler.
Misschien dat iemand anders het precies weet.

Als je het met de broncode wil proberen heb je misschien iets aan deze link http://www.garret.ru/~knizhnik/cpp.html
Er staat onderaan iets over bgi. In het bestand winbgi.zip zit denk ik ook de broncode van de bgi library. Dat is dan dus winbgi.cpp .
Het lijkt erop dat de libbgi.a daar de naam winbgi.lib heeft.
Je kan dan kiezen of je de winbgi.cpp of de winbgi.lib gebruikt.
 
Laatst bewerkt:
....

Ik heb echt geen flauw idee wat ik met die drie bestanden moet :rolleyes:
 
Je zal toch echt de borland compiler/ide moeten leren gebruiken. Ik zal een poging doen je op weg te helpen.

Probeer het bestand met de command-line tool te compileren. Probeer eerst een simpel hello world programma. Als dat lukt kan je het volgende proberen:

Kopieer het bestand winbgi.cpp naar de map waar ook jouw .cpp bestand staat.

voer het programma bcc32 als volgt uit:
start een command-prompt via
startknop -> uitvoeren
en dan het programma cmd.exe starten

vervolgens ga je naar de directory van je programma in de console

In de consolewindow typ je dan:
bcc32 -If:\Borland\bcc55\include -Lf:\Borland\bcc55\Lib naamvanjouwbestand.cpp winbgi.cpp

Als de include en lib map bij jouw in een ander pad staan moet je natuurlijk dat pad gebruiken.

Let op:
Als de bin van borland niet in je PATH staat moet je het absolute pad gebruiken voor bcc32.
Zie ook deze site http://dn.codegear.com/article/20997. Veel beter kan ik het helaas niet uitleggen.

Edit: Je kan het commando:
bcc32 -If:\Borland\bcc55\include -Lf:\Borland\bcc55\Lib naamvanjouwbestand.cpp winbgi.cpp

natuurlijk ook in een .bat file zetten en die uitvoeren.
(evt. pause eronder zodat het windowopen blijft)
 
Laatst bewerkt:
????

Die download link van jou heeft me drie bestanden opgeleverd:
- libbgi.A
- winbgim.H en
- graphics.H

geen winbgi.cpp...
 
Ik ben geen noob ;-)

Ik weet trouwens wel hoe je moet compilen met Borland van bcc32en dan je bestand en zo maar dat van I(nlude?)f(ile?): blablabla en L(ibrary?)f(ile?): bablabla wist ik niet ;)
 
Die download link van jou heeft me drie bestanden opgeleverd:
- libbgi.A
- winbgim.H en
- graphics.H

geen winbgi.cpp...

Raar.. als ik op die link klik, helemaal naar beneden scroll en dan winbgi.zip download en open zie ik toch echt winbgi.cpp staan.. :P
 
????

Als ik dit:

bcc32 naamvanmijnbestand.cpp winbgi.cpp

intypkomen er bij winbgi 15 errors!

en alleemaal wel 3 regels lang... ;:shocked:
(ik heb hem nu wel:D)

En als ik dit: bcc32 -If:\Borland\bcc55\include -Lf:\Borland\bcc55\Lib naavanmijnbetsand.cpp winbgi.cpp

intyp dan komt er een aler:

..........Windows - Geen Schijf

................Exception Processing Messag 0x0000013 Parameters 0x 762A023C
................0x832B896C 0x762A023C 0x762A023C

..............................Annuleren Opnieuw Doorgaan

...
 
Laatst bewerkt:
Ik weet trouwens wel hoe je moet compilen met Borland van bcc32en dan je bestand en zo maar dat van I(nlude?)f(ile?): blablabla en L(ibrary?)f(ile?): bablabla wist ik niet
Als de compiler normaal de map include en lib kan vinden
dan hoef je de opties -I en -L niet eens te gebruiken.

Als ik dit:

bcc32 naamvanmijnbestand.cpp winbgi.cpp

intypkomen er bij winbgi 15 errors!

en alleemaal wel 3 regels lang... ;:shocked:
(ik heb hem nu wel:D)
Kan je hiervan de eerste 6 regels posten, dus de eerste twee errors.

En als ik dit: bcc32 -If:\Borland\bcc55\include -Lf:\Borland\bcc55\Lib naavanmijnbetsand.cpp winbgi.cpp

intyp dan komt er een aler:

..........Windows - Geen Schijf

................Exception Processing Messag 0x0000013 Parameters 0x 762A023C
................0x832B896C 0x762A023C 0x762A023C

..............................Annuleren Opnieuw Doorgaan

...

Mag ik hieruit concluderen dat jij borland op de f schijf hebt staan en niet op de c aangezien je -If:\Borland\bcc55\include en -Lf:\Borland\bcc55\Lib hebt geprobeerd?.
Wat is het absolute pad van jouw include en lib map?
En is de naam van jouw .cpp bestand echt naavanmijnbetsand.cpp?
 
Laatst bewerkt:
Alle errors

Ik zal (proberen) al je vragen te beantwoorden: :-)

het absolute pad van Lib is gewoon:
(computer)C:\Borland\bcc55\(include/Lib)\

het staat gewoon op de C: schijf dus ;-)

ik zal in plaats van de 1e 2 errors te posten alle (3 regels per error was overdreven):

mijnbestand.cpp:
winbgi.cpp:
Warning W8027 winbgi.cpp 210: Functions containting while are not expanded inline

Warning W8027 winbgi.cpp 260: Functions containing for are not expanded inline
(zelfde error als boven andere regel...)
(zelfde error als boven andere regel...)
(zelfde error als boven andere regel...)
Error E2451 winbgi.cpp 484: Undefined symbol 'VGAMAX' in function getmaxmode()
Warning W8071 winbgi.cpp 551: Conversion may lose significant digits in finction setpalette(int,int)
(zelfde als boven alleen andere regel en functie)
(zelfde als boven alleen andere regel en functie)
(zelfde als boven alleen andere regel en functie)
(zelfde als boven alleen andere regel en functie)
Error E2141 winbgi.cpp 628: Declaration syntax error
Error E2451 winbgi.cpp 637: Undefined symbol 'fillpatterntype'
(nog een ongedefinieerde functie of symbool)
(nog een ongedefinieerde functie of symbool)
(nog een ongedefinieerde functie of symbool)
Warning W8057 winbgi.cpp 993: Parameter 'end_angle' en 'start_angle' is never used in function arc(int,int,int,int)

nou dat is nog niet eens de hleft :D er zijn echt nog veel meer en ook een paar hele andere

dat onderste werkte niet ik kreeg nog steeds dezelfe erors...;(

en de naam van naamvanmijnbestand.cpp is ook echt de naam van naamvanmijnbestand.cpp;)
 
Als je met de winbgi.cpp uit winbgi.zip werkt moet je ook de graphics.h uit winbgi.zip gebruiken. Heb je dat wel gedaan, want daarin zijn VGAMAX en fillpatterntype gewoon gedefinieerd.

Overigens werkt het bij mij gewoon met die winbgi.cpp, dus ik heb nog wel wat hoop dat het gaat lukken :).

EDIT:
Misschien ten overvloede:
Die graphics.h moet dan in dezefde map als winbgi.cpp.
 
Laatst bewerkt:
:s:s:s:s:s

ik krijg nog steeds dezelfde errors en nu nog 1 extra: bij naamvanmijnbestand.cpp:

Error (naam en regel enzo.): Multiple declaration for 'right ;
 
ik krijg nog steeds dezelfde errors en nu nog 1 extra: bij naamvanmijnbestand.cpp:

Error (naam en regel enzo.): Multiple declaration for 'right ;

Je was me voor met posten zie ook de edit in de post hierboven van mij.
Die graphics.h uit winbgi.cpp moet in dezefde map als winbgi.cpp. Dit aangezien in winbgi.cpp #include "graphics.h" staat. En in jouw .cpp bestand moet dan ook #include "graphics.h" staan en niet #include <graphics.h>
 
"s:s:s:s:s:s

't Werkt nog niet... ik heb graphics.h in dezelfde map gezet... #include <graphics.h> vervangen door #include "graphics.h" e het werkt nog niet :S:S:S hij geeft nog steedsdezelfde errors:confused:
 
Laatst bewerkt:
Ik vind het vreemd dat je nog exact dezelfde errors krijgt.
De warnings zijn wel begrijpelijk, maar die kan je voorlopig even negeren.

Ik vraag het nog maar een keertje:
Weet je zeker dat je de graphics.h uit winbgi.zip hebt gebruikt. In die graphics.h staat op regel 123 VGAMAX gewoon gedefinieerd, controleer dat ook even.
En zo ook fillpatterntype op regel 139.

De errors
Error E2451 winbgi.cpp 484: Undefined symbol 'VGAMAX' in function getmaxmode()
en
Error E2141 winbgi.cpp 628: Declaration syntax error
Error E2451 winbgi.cpp 637: Undefined symbol 'fillpatterntype'
zouden toch echt weg moeten zijn.
 
Laatst bewerkt:
Nee!

VGAMAX is niet gedeclareerd op regel 123 en fillpatterntype ook niet op 139 (dus ook niet ergens anders denk ik) ik zal de bestande enes opnieuw uitpakken...
 
Stomme Ik!

STOMME IK! ik heb de verkeerde graphics.h gekopieerd... ik heb de latste dtijd heel veel compilers gedownload dus overal zie je staan graphics.h... maar nu klopt het dus en komen er geen errors bij winbgi.cpp ... alleen warnings MAAR WEL POTVERDORIE BIJ NAAMVANMIJNBESTAND.CPP... het zijn allemaal errors van stdlib.h zoals:
Error 2293 C:\Borland\bcc55\include\stdlib.h 337: > expected en
Error 2293 C:\Borland\bcc55\include\stdlib.h 506: identifier expected en
Error 2293 C:\Borland\bcc55\include\stdlib.h 604: MAX is not a member of 'std'
...
 
Waar wordt stdlib.h dan geinclude?
Is dat wel nodig om die bgi te testen?
Als je regels 335 t/m 338 van stdlib.h post kan ik of iemand anders er even naar kijken als je er niet uitkomt.
Toch een beetje vreemd dat in dat .h bestand een error zit.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan