[ Pretender @ 24.07.2003. 12:26 ] @
Molim C++ programere za pomoc.
Pocinjem da radim po knjizi "C++ za 21 dan" (Jesse Liberty) ali sam se sapleo vec na 1.danu.
Problem je u tome sto Borland C++ Builder 6, koji imam, nema mnogo dodirnih tacaka sa COBOL Builderom na kojem sam do sad ponesto radio, tako da ne umem da startujem 1.program ("Zdravo svete"). Naime, kada unesem program :

#include<iostream.h>

int main()
{
cout << "Zdravo svete!\n";
return 0;
}

i runujem (ovde se, izgleda compile i link izvrsavaju automatski) dobijem blank prozor Form1, dakle, ne desava se nista.
Pre toga, pri otvaranju Buildera, dobijam Unit1.cpp, na kojem su vec unete instrukcije.

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------------------------------

Pokusao sam zato da otvorim Unit2, izbrisem sav postojeci sadrzaj (sto,znam, nije logicno):

#pragma hdrstop

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

i unesem svoj program. Ali rezultat je isti, tj. prazan Form1.

Na moju zalost, u pomenutoj knjizi nije dat opis elementarnih operacija na Borlandu tako da sam se na pocetku nasao u mat poziciji.

Znam da je stvar extremno jednostavna, ali ko ne zna, ne zna.


[ reject @ 24.07.2003. 12:36 ] @
Mozes da zatvoris sve prozore (File/CloseAll) i projekat po startovanju
Borlanda, zatim otvoris novi prozor (File/New pa selektujes Cpp file ikonicu).
Otkucas program, snimis, zatvoris ga i kada ga sledeci put ucitas, Builder
ce te pitati da builduje projekat i ti kazi OK. Sad mozes da ga 'runujes'
iz Buildera.

Po meni je bolje kucati te sourceove u Builderu ili nekom editoru, a
kompajlirati ih iz dos-prozora sa bcc32.exe imeprograma.cpp posto
su to ipak primeri za konzolu.
[ MilošV @ 24.07.2003. 14:50 ] @
Bolje ovako: File/Close All a zatim File / New / Console Wizard, OK, kad ukucas program samo pritisni F9 da bi ga runovao, ne moras nista da sejvujes :) prije toga...
[ reject @ 24.07.2003. 15:31 ] @
Jeste, u pravu si. Nikada to nisam probao jer mi nije jasno zasto je
ConsoleWizard == ConsoleApplication. Da ConsoleApplication nije
MS trademark? :)
[ Mrav @ 24.07.2003. 15:52 ] @
Citat:
problem sa runom 1. programa


In a hole in the ground there lived a Hobbit… ( ko razume razumeće).
[ leka @ 24.07.2003. 16:57 ] @
ConsoleWizard je najbolje moguce ime, zato jer to JESTE wizard - pita kakvu konzolnu aplikaciju zelis, sta od biblioteka da ukljuci i tako dalje...
[ Pretender @ 24.07.2003. 19:25 ] @
Hvala rejectu i tizzi, sada se vec nesto mice. Ali sad su problemi sledeci :
U rejectovom resenju, posle runovanja, iskace, na trenutak, mali crni prozor i nestaje tako brzo da ne moze ni da se procita naslovna linija.
U tizzinom pak resenju, debugger markira liniju ispod int main() /prva velika zagrada/ i daje dve poruke :

[C++ Error] Unit1.cpp(18): E2476 Cannot overload 'main'
[C++ Error] Unit1.cpp(18): E2178 VIRDEF name conflict for 'main()'

Posto sam program, cini mi se, tacno napisao, ne znam sta bi ovo trebalo da znaci ?
[ random @ 24.07.2003. 21:18 ] @
Citat:
Mrav:
Citat:
problem sa runom 1. programa


In a hole in the ground there lived a Hobbit… ( ko razume razumeće).


Ja ne razumem. Rune su postojale mnogo pre popularne literature, a ne znam kako bi izraz "runa prvog programa" trebalo da me asocira na "Hobita"?
[ reject @ 25.07.2003. 12:40 ] @
Citat:
Pretender:
U rejectovom resenju, posle runovanja, iskace, na trenutak, mali crni prozor i nestaje tako brzo da ne moze ni da se procita naslovna linija.


Zato sto startujes program iz buildera. Po startu se otvori dos-prozor, izvrsi
program i zatim po zavrsetku programa se prozor zatvori. Kada bi otvorio
dos-prozor i isti program startovao rucno, po zavrsetku izvrsenja programa
dos-prozor se nebi zatvorio.
A mozes i da ubacis jedan cin na kraju pa da se ceka input pre nego sto
se prozor zatvori, tako da mozes da ga startujes iz Buildera.

Citat:

[C++ Error] Unit1.cpp(18): E2476 Cannot overload 'main'
[C++ Error] Unit1.cpp(18): E2178 VIRDEF name conflict for 'main()'


Ovo se desava zato sto ti Builder u startu ispise:
Code:

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
        return 0;
}


I ako ti ispod toga kucas svoj program normalno da ti se javlja problem
jer main ne moze da se overloaduje. Znaci obrisi sav text pa kucaj svoj prg.

@leka:
Evo sta nudi wizard:

Znaci, nije bas i neki wizard :)
[ MilošV @ 25.07.2003. 13:35 ] @
Dakle, covjek ti je objasnio, svoj program napisi unutar vec ponudjenih zagradica ili obrisi pa pisi ispocetka...
To sto prozor nestaje mozes rijesiti i ovako:
U zaglavlje stavi
#include <conio.h>
a na kraju koda (ali ispred linije "return 0;") pisi:
getch();

Na ovaj nacin ce crni prozor (iliti command prompt prozor) ostati ukljucen dok ne pritisnes bilo sto na tastaturi tj. metod sa F9 ce raditi OK.
Fore radi, mozes i ispred getch() staviti:
cout<<"Press any key to continue\n";
(mada bi to neki ovdje nazvali cistim 14m3ri54nj3m ;)
[ MilošV @ 25.07.2003. 13:42 ] @
Citat:
reject:
Jeste, u pravu si. Nikada to nisam probao jer mi nije jasno zasto je
ConsoleWizard == ConsoleApplication. Da ConsoleApplication nije
MS trademark? :)

Zbilja, kakav je to wizard kad nema dugme "Next >>" ? :)
[ Pretender @ 25.07.2003. 15:42 ] @
10^4 * hvala rejectu i tizzi! Uspeo sam da startujem, konacno, jubilarni 1. program. U kombinaciji Vasih sugestija isao sam na Cpp File i uneo one dodatne instrukcije. Stvar radi. Ako idem preko wizarda (izbrisao sam sav prethodni sadrzaj) dobijam 2 poruke linkera :

[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

Ali to je, za sada, manje vazno. Bitno je da mogu da pocnem sa radom.
Jos jednom hvala na velikoj pomoci !!!
[ reject @ 25.07.2003. 16:06 ] @
Nemo koristis VCL nego wizard namesti kao na slici gore.
Sad sam probo, niko se ne buni. :)
[ Pretender @ 25.07.2003. 20:26 ] @
Rejectu :

Wizard bez VCL-a radi just perfect !

Thanx, one more time.