Von Headerdatei auf normalen Quelltext zugreifen
-
Hallo,
ich programmiere in C++ .NET und habe deshalb für mein Projekt meine .h-Datei, eigentlich die Hauptdatei in der alle Anweisungen stehen wie wenn z.B. ein Button gedrückt wird o.ä., und noch meinen normalen Quelltext, die .cpp-Datei mit der main() Funktion, in der nur das Frame für meine .NET Anwendung aufgerufen wird.
Wie kann ich denn von meiner .h-Datei auf eine Funktion aus der .cpp-Datei zugreifen? Das muss doch irgendwie möglich sein, nur wie? Das würde mir sehr weiterhelfen!Vielen Dank im Voraus,
Fabian
-
Ich hoffe jetzt mal, ich verstehe dich richtig. Du du musst bedenken, dass der Formdesigner von Visual C++ den Quelltext deiner Form in nur einer Datei generiert, damit er sie danach bequem weiterbearbeiten kann. Implementation und Definition sind nicht getrennt, vielleicht solltest du deine Methoden dann eben auch in die Header schreiben, auch wenn es vielleicht nicht deinem Stil entspricht...
-
Das ist gerade das Problem, ich würde meine Funktion ja liebend gerne in die Headerdatei schreiben, nur dass ich das Problem habe, dass sie im .cpp Quelltext funktioniert und in der .h-Datei eben nicht. Das liegt wahrscheinlich daran, dass es meine Funktion nur für normal C++ gibt, aber für C++.NET eben nicht. Deshalb wollte ich sie ja in .cpp schreiben und dann von .h aus aufrufen!?! Gibt es denn wirklich keine Möglichkeit das zu tun?
Vielen Dank schonmal,
Fabian
-
also die Frage macht,glaub ich, nicht allzuviel Sinn. Ob .h ode .cpp file is ziemlich egal, im endeffekt alles bloss text. Jede .h datei ladet ja doch im in einer .cpp file, weil eingebunden.
Es waere eher sinnvoll dem nach zugehen, warum deine funktion dort geht und wo anders nicht. Ich bin ziemlich sicher das sich das loesen laesst.
Und gererell, wenn du in einer .h file ein funktion aufrufen willst die in einer cpp file steht, geht das schon.
Aber, wie schon gesagt, deine .h file wird ja in irgendeine cpp file eingbunden (normalerweise), ob du dieser cpp oder in .h file aufrufst ist egal.Du kannst die funktion nur aufrufen, wenn sie entweder vorher schon defniert wurde, oder du musst halt nen prototype davor haengen.