EAccessViolation
-
Hi
ich hab mal wieder ein problem und hoffe, dass ich es in die richtges forum gepostet hab.
[bereits gelöst] Also hier sind 2 Formulare mit Quell- und Headerdateien.
ich nutze BCB6
in der TForm1 Klasse (Public) hab ich (schon) 2 Funktionen die ich aus den quelldateien der beiden Formularen nutzen will. noch vor class TForm1 :Public TForm... hab ich die Prototypen der beiden funktionen.....
Includes:
Form1.cpp -> Form1.h &Standartincludes
Form1.h -> Standartincludes & Form2.h
Form2.cpp -> Form1.h, Form2.h &Standardincludes
Form2.h -> Standartincludesdes weiteren hab ich vor der Klassendefnition von Form2 (Form2.h) class TForm1; eingefügt, es soll eine forwärtsdefinition sein, wenn sie das nicht ist sagts...
das Problem ist, das ich beim Kompilieren folgende fehlermeldungen bekomme...
Erzeugen
[Linker Fehler] Unresolved external 'GPoa()' referenced from G:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\Form1.OBJ
[Linker Fehler] Unresolved external 'GP()' referenced from G:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\Form2.OBJ[/bereits gelöst]
wenn ich die Funktionen hinter die Klasse schreibe, dann funzts?????
ah ne doch nich...
ich erhalte immer eine EAccessViolation(BCB Debugger) und dann EInvalidOp wenn folgende Funxion ausgeführt werden soll:double GPoa(void) { try { double GP; for(int i =1; i<Form1->TStringGrid1->RowCount;i++) { GP =GP+Form1->TStringGrid1->Cells[4][i].ToDouble(); } Form1->Edit1->Text=GP; return GP; } catch(...) {} }ich erhalte den Fehler immer wenn diese funktion ausgeführ werden soll, egal ob ich sie aus Form1 oder Form2 aufrufe...
die funktion steht unterhalb von__fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endifhoff, ihr könnt mir helfen...

Elefunty
->wenn mir noch was einfallt oda so schreib ichs hier rein... wenn ihr was benötigt sagt bescheid[EDIT]
ich habe die beiden funktionen in eine eigene *.h datei geschmissen.
doch das geht auch nich:class TForm1; class TForm2; Prototypen Funktionendann heißt es:
Funktionen.h(13), undefiniertes Symbol 'Form2' Funktionen.h(34), undefiniertes Symbol 'Form1' Funktionen.h(38), undefiniertes Symbol 'Form1'wat is jez falsch?
ich denke, bzw ich hoffe, dass es jetzt verständlicher ist... :pEle
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
so ich hab jez die funktionen wieder in die public von TForm1 geschrieben und sie dann mit Form1->Funktion1(); angesprochen...
denkbar einfach und damit hab ich gute 1 1/2 Tage gebraucht

naja fehler sind da, um aus ihnen zu lernen...Egal
Ele