Problem bei Implementation einer Unit
-
Hallo zusammen,
ich schaffe es gerade irgendwie nicht eine andere Unit zu implementieren.
In dieser Unit2 stehen drei Prozeduren:#pragma hdrstop #include "Unit2.h" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) void fgraph (void) { ... } void bgraph1 (void) { ... } void bgraph2 (void) { ... }
Ich kann diese Prozeduren aber nicht in Unit1 nutzen und weiß nicht warum. So siehts bei mir in der ersten Unit aus:
#include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit2.h" ... void __fastcall TForm1::FormCreate(TObject *Sender) { fgraph(); //Aufruf einer undefinierten Funktion }
Was mache ich genau falsch? Beide UNits sind im selben Ordner abgespeichert und haben keine Fehler.
Vielen Dank für eure Hilfe
lg, freakC++
-
die Funktionen gehören ja auch nicht zu Unit2 und deswegen kannst du auch nicht über die Headerdatei von Unit1 auf sie zugreifen.
greetz KN4CK3R
-
das heißt ich muss was ändern?
-
Aufruf der Funktion mit Form2->bgraph1(); ( Wenn es ein Formular ist und geöffnet ),
oder als DLL erstellen
oder FunktionsText in die Unit übernehmen (wenns kein Formular ist).
-
weder noch:
//Header class ... : public TForm { __published: // Von der IDE verwaltete Komponenten ... private: // Benutzer-Deklarationen public: // Benutzer-Deklarationen void deinefunc(); __fastcall ...(TComponent* Owner); }; //CPP void __fastcall ...::deinefunc() { }
greetz KN4CK3R
-
Hi,
@KN4CK3R, vermutlich liegen wir beide daneben.
Es sieht so aus, als hätte er eine Unit2 ohne Formular (*.dfm für die anderen ;))
Dann muss er seine Funktionen in der Headerdatei von Unit2 deklarieren. Dann reicht es für den Zugriff (unter der Voraussetzung,
dass Unit2.cpp zum Projekt hinzugefügt wurde.mfg
kpeter
-
Hallo,
ja, ich habe eine Unit ohne Formular. Gut, dann werde ich die Prozeduren mal in die Headerdatei schreiben.Vielen Dank
lg, freakC++