[ Gogy @ 05.10.2003. 18:28 ] @
Zdravo svima!

Nov sam na ovom forumu,i ovo je moj prvi post!
Vidim da se ovdje okupljaju pravi experti pa bih vas zamolio za pomoc.

Naime,ucim C++ i nikako ne mogu podijeliti izvorni kod u vise datoteka...
Evo primjera:

[Glavni.cpp]
Code:

#include <goran.h>
int main(){
Test();
return 0;
}

[goran.h]
Code:

extern void Test();


[goran.cpp]
Code:

#include <goran.h>
void Test(){
//Tijelo funkcije
}


Ovo je samo jedan bezvezni primjer koji mi nikako ne radi...
Stalno dobijam poruku:unresolved external...

Inace koristim Visual C++.Net 2003.
Molio bih vas,ukoliko nesto znate o ovome,da mi pomognete.

Pozdrav,
Goran.
[ veljaradenkovic @ 05.10.2003. 20:45 ] @
Umesto #include <jkhkjh.h> kad hoces da inkludujes datoteke koje si sam kreirao i koje se obicno ne nalaze u direktorijumima koji su tvom kompajleru okarakterisane kao "Include path-s" koristi zanake navoda "" tj. #include "jkhkjh.h"
[ Gogy @ 05.10.2003. 21:10 ] @
Citat:
veljaradenkovic:
Umesto #include <jkhkjh.h> kad hoces da inkludujes datoteke koje si sam kreirao i koje se obicno ne nalaze u direktorijumima koji su tvom kompajleru okarakterisane kao "Include path-s" koristi zanake navoda "" tj. #include "jkhkjh.h"


Hvala na odgovoru!
Probao sam,ali nazalost opet ne radi...
[ Beban @ 05.10.2003. 23:01 ] @
A jesi li fajlove koje si sam kreirao ukljuccio u projekat?
Pojavljuju li se u tree-ju kada klikness na tab Sources?
[ Not now, John! @ 05.10.2003. 23:06 ] @
I ja sam početnik u C/C++, ali bih ja taj problem riješio tako što bih u gl. fajlu gdje se nalazi main() pozivao goran.h fajl, a iz goran.h fajla bih pozivao goran.cpp. Dakle,
goran.h:
Code:

void Test();
#include "goran.cpp"

a goran.cpp:
Code:

void Test() {
  // funkcija
}

[ dust @ 06.10.2003. 07:03 ] @
probaj ovako:

glavni.cpp:

#include "goran.h"

int
main()
{
// svasta...
Test();
// svasta...
}

goran.h

#ifndef __GORAN_H__
#define __GORAN_H__

void Test(); //odakle ti extern?

#endif

goran.cpp

#include "goran.h"

void
Test()
{
//svasta
}
[ Mrav @ 06.10.2003. 10:54 ] @
Greška je sigurno u extern, to je potrebno samo ako koristis funkcije koje nisu u programu (recimo nalaze se u nekom dll-u) ili kada koristis funkcije iz nekog drugog jezika (c, paskal).
[ Gogy @ 06.10.2003. 15:44 ] @
Okay,hvala svima na odgovorima.

Pokusati cu kasnije ove primjere...

Pozdrav,
Goran.
[ bane @ 14.12.2006. 08:54 ] @
Da li ispada da u datoteke zaglavlja .h postavljamo deklaracije,a u iste datoteke koda .cpp postavljam definicije deklarisanih funkcija ili klasa? I na kraju u glavnoj .ccp pozivamo datoteke zaglavlja?
[ SuPeR_MaSteR @ 14.12.2006. 22:27 ] @
Ja bas radim obrnuto, definicije klasa/funkcija postavljam u header fajlove, a njihove prototipove tj. deklaracije u cpp. I naravno u glavni fajl ukljucujem ih #include direktivom
[ opmo @ 16.12.2006. 00:52 ] @
Citat:
SuPeR_MaSteR: Ja bas radim obrnuto, definicije klasa/funkcija postavljam u header fajlove, a njihove prototipove tj. deklaracije u cpp. I naravno u glavni fajl ukljucujem ih #include direktivom


i meni kada tako probam VS98 javlja gresku,nesto kao unresolved external ...
Isto je kada probam kod od dust-a.
Ideja?
[ DjoleReject @ 15.01.2007. 11:21 ] @
Citat:
Mrav: Greška je sigurno u extern, to je potrebno samo ako koristis funkcije koje nisu u programu (recimo nalaze se u nekom dll-u) ili kada koristis funkcije iz nekog drugog jezika (c, paskal).


Nije bas tako. Extern se koristi i kada je objekat kreiran posle definicije funkcije u kojoj se koristi. Ali u ovom slucaju zaista nema potrebe za extern.
Takodje na pocetku .h fajla UVEK I OBAVEZNO stavi:

#ifndef GORAN_H
#define GORAN_H

a na kraju tog fajla

#endif

U gornjem primeru sve napisano velikim slovima zameni sa pravim imenom fajla i radice.