[C++ Error] mainE.cpp(3464): E2314 Aufruf einer Nicht-Funktion
-
hei
bekomme diesen Fehler: Aufruf einer Nicht-Funktion
was ist bei "SaveProjectLabel(1,File(fileName));" falsch?void __fastcall TMain::editExeSettings() { ofstream File(fileName); //open settings file SaveProjectLabel(1,File(fileName)); ... File.close(); }
void __fastcall TMain::SaveProjectLabel(int iIndex,TObject *ofstream) { ... }
bis bald dieleena
-
Hallo
so richtig hast du Parameter und Funktionen noch nicht verstanden. Fangen wir mit der Funktion selber an. Du willst offenbar einen Stream als Parameter übergeben. Aber Parameter werden grundsätzlich als Typ Name definiert, und ofstream hat nichts mit TObject zu tun. Und als Name des Parameters sollte auch kein bereits definiertes Symbol genommen werden. Zu letzt sollten komplexe Typen (alles auser int, char, float...) als (konstante) Referenzen übergeben werden.
Zusammenfassend ist also das die korrekte Schreibweise :void __fastcall TMain::SaveProjectLabel(int Index, ofstream& Stream) { ... }
Dann kannst du auf diese Funktion zugreifen, aber ohne eine unsinnige Funktionsdeklaration
ofstream File(fileName); //open settings file SaveProjectLabel(1, File);
bis bald
akari
-
hei,
dieses hatte ich auch getestet.SaveProjectLabel(1, File);
Auch hier der gleiche Fehler.
Dies ist der Fehler, den ich gemacht habe. "TObject *ofstream"void __fastcall TMain::SaveProjectLabel(int iIndex,TObject *ofstream)
Super, Danke,
bis bald dieleena
-
Hallo
Nochmal : ofstream hat nichts mit TObject zu tun.
Meine Veränderungen sind schon insgesamt nötig. Stell sicher, das auch in der Headerdatei von TMain auch die Funktion SaveProjectLabel als Member des Forms dekalriert ist, und oben in der Headerdatei der notwendige STL-Include steht#include <fstream> // Ohne .h!
Desweiteren solltest du auch immer den Namespace mitverwenden
void __fastcall TMain::SaveProjectLabel(int Index, std::ofstream& Stream) { ... }
std::ofstream File(fileName); // std::ofstream File(fileName.c_str()); falls fileName ein AnsiString ist SaveProjectLabel(1, File);
Wenn du immer noch Fehler bekommst, poste deinen relevanten Code mitsamt Deklarationen und Headerdatei.
bis bald
akari