/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Kald af funktion i andet unit.
Fra : S


Dato : 08-10-03 14:29

Hejsa

Jeg har et program i Borland C++ Builder 5 med 2 units(Unit1.h og
Unit2.h).

I Unit1 har jeg en funktion der hedder update og er defineret nogle
lunde således:
void update ()
{
....
}

Den funktion vil jeg gerne kalde fra Unit2 men det kan jeg ikke finde
ud af og jeg kan heller ikke finde det rigtige sted i hjælpe filen at
lede.

Er der nogen der kan forklare mig hvordan jeg gør eller hvor jeg kan
læse hvordan men gør?

 
 
Bertel Lund Hansen (08-10-2003)
Kommentar
Fra : Bertel Lund Hansen


Dato : 08-10-03 14:38

S skrev:

>I Unit1 har jeg en funktion der hedder update og er defineret nogle
>lunde således:
>void update ()
>{
>...
>}
>
>Den funktion vil jeg gerne kalde fra Unit2 men det kan jeg ikke finde
>ud af og jeg kan heller ikke finde det rigtige sted i hjælpe filen at
>lede.

#include "Unit1.h"

....

update(hele_molevitten);

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

S (08-10-2003)
Kommentar
Fra : S


Dato : 08-10-03 14:50

On Wed, 08 Oct 2003 15:37:49 +0200, Bertel Lund Hansen
<nospamius@lundhansen.dk> wrote:

>S skrev:
>
>>I Unit1 har jeg en funktion der hedder update og er defineret nogle
>>lunde således:
>>void update ()
>>{
>>...
>>}
>>
>>Den funktion vil jeg gerne kalde fra Unit2 men det kan jeg ikke finde
>>ud af og jeg kan heller ikke finde det rigtige sted i hjælpe filen at
>>lede.
>
>#include "Unit1.h"
>
>...
>
>update(hele_molevitten);


Det virker ikke. Det har jeg prøvet. Den siger bare Call to undefined
function.

Bertel Lund Hansen (08-10-2003)
Kommentar
Fra : Bertel Lund Hansen


Dato : 08-10-03 15:09

S skrev:

>>>I Unit1 har jeg en funktion der hedder update og er defineret nogle
>>>lunde således:
>>>void update ()

>>#include "Unit1.h"
>>update(hele_molevitten);

>Det virker ikke. Det har jeg prøvet. Den siger bare Call to undefined
>function.

Er stien til modulet rigtig?

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

S (08-10-2003)
Kommentar
Fra : S


Dato : 08-10-03 15:20

gOn Wed, 08 Oct 2003 16:08:48 +0200, Bertel Lund Hansen
<nospamius@lundhansen.dk> wrote:

>S skrev:
>
>>>>I Unit1 har jeg en funktion der hedder update og er defineret nogle
>>>>lunde således:
>>>>void update ()
>
>>>#include "Unit1.h"
>>>update(hele_molevitten);
>
>>Det virker ikke. Det har jeg prøvet. Den siger bare Call to undefined
>>function.
>
>Er stien til modulet rigtig?

Hvilket modul? Mener du uniten? Så ja.
--
Besøg http://adsltips.crunzh.com for guider til
ADSL og opsætning af CISCO router.

Bertel Brander (08-10-2003)
Kommentar
Fra : Bertel Brander


Dato : 08-10-03 22:10

S wrote:
> Hejsa
>
> Jeg har et program i Borland C++ Builder 5 med 2 units(Unit1.h og
> Unit2.h).
>
> I Unit1 har jeg en funktion der hedder update og er defineret nogle
> lunde således:
> void update ()
> {
> ...
> }
>
> Den funktion vil jeg gerne kalde fra Unit2 men det kan jeg ikke finde
> ud af og jeg kan heller ikke finde det rigtige sted i hjælpe filen at
> lede.
>
> Er der nogen der kan forklare mig hvordan jeg gør eller hvor jeg kan
> læse hvordan men gør?

Normalt har man funktioner i c/cpp filer og prototyper i h-filer.

Du skal putte funktionen i en cpp-fil og lave en prototype i en h-fil
der inkluderes af alle de cpp filer der bruger funktionen, f.ex:

unit1.cpp:

#include "unit1.h"
void update()
{
....
}

unit1.h
extern void update();

unit2.c:

#include "unit1.h"

update();

/b


S (09-10-2003)
Kommentar
Fra : S


Dato : 09-10-03 08:39

On Wed, 08 Oct 2003 23:09:44 +0200, Bertel Brander
<bertel@post4.tele.dk> wrote:
>unit1.h
>extern void update();

Tak det var lige netop extern jeg manglede.

Igor V. Rafienko (09-10-2003)
Kommentar
Fra : Igor V. Rafienko


Dato : 09-10-03 16:06

[ me@privacy.net ]

[ ... ]

> >unit1.h
> >extern void update();
>
> Tak det var lige netop extern jeg manglede.


Funksjonsdeklarasjoner er extern i utgangspunktet.

$ gcc -c foo.c
$ gcc -c bar.c
$ gcc bar.o foo.o
$ ./a.out
I am a foo
$ for i in foo.h foo.c bar.c; do cat $i; echo "----"; done
void foo( void );
----
void
foo()
{
puts( "I am a foo" );
}

----
#include "foo.h"

int
main()
{
foo();
}
----
$





ivr
--
<html><form><input type crash></form></html>

Bertel Brander (09-10-2003)
Kommentar
Fra : Bertel Brander


Dato : 09-10-03 18:43

Igor V. Rafienko wrote:
> [ me@privacy.net ]
>
> [ ... ]
>
>
>>>unit1.h
>>>extern void update();
>>
>>Tak det var lige netop extern jeg manglede.
>
>
>
> Funksjonsdeklarasjoner er extern i utgangspunktet.
>

Ja, "extern void update();" er det samme som "void update();",
men ikke det samme som "". "extern int x;" er heller ikke det
samme som "int x;".

/b


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste