Headerdatei
-
Hallo,
ich versuche gerade in einem Programm eine Headerdatei einzufügen und in dieser meine Funktionen auszulagern.
Habe die Klasse in Visual Studio 2008 hinzugefügt und bekomme zwei neue dateien erstellt.FunctionMatrix.h
#pragma once ref class FunctionMatrix { public: FunctionMatrix(void); };
FunctionMatrix.cpp
#include "StdAfx.h" #include "FunctionMatrix.h" FunctionMatrix::FunctionMatrix(void) { }
Jetzt muss ich doch in der .h Datei die Funktionen als Prototyp schreiben also z.B.
array<float,2>^ readoutMatrix(String^ tb);
und kann dann in der .cpp Datei den eigentlichen Code der Funktion einfügen
FunctionMatrix::array<float,2>^ readoutMatrix(String^ tb) { ... }
Und dann kann ich mit #include"FunctionMatrix.h" mir die Datei im Programm einbinden und habe die Funktionen zur Verfügung.
Aber irgendwie bekomme ich das nicht auf die Reihe.
Was mache ich denn falsch oder habe ich das ganze Thema nicht verstanden?
-
Das muss so lauten in der cpp:
array<float,2>^ FunctionMatrix::readoutMatrix(String^ tb)
-
Jetzt hab ich das ganze so:
FunctionMatrix.h#pragma once ref class FunctionMatrix { public: FunctionMatrix(void); array<float,2>^ readoutMatrix(String^ tb); };
FunctionMatrix.cpp
#include "StdAfx.h" #include "FunctionMatrix.h" FunctionMatrix::FunctionMatrix(void) { } array<float,2>^ FunctionMatrix::readoutMatrix(String^ tb) { }
und bekomme Fehler:
error C2061: Syntaxfehler: Bezeichner 'String' FunctionMatrix.h
error C2065: 'String': nichtdeklarierter Bezeichner FunctionMatrix.cpp
error C2065: 'tb': nichtdeklarierter Bezeichner FunctionMatrix.cpperror C2761: 'cli::array<Type,dimension> ^FunctionMatrix::readoutMatrix(void)': Die erneute Deklaration der Memberfunktion ist unzulässig
-
Schreib entweder "using namespace System" oder schreibe "System::String"
-
Danke.
Hab alles soweit hinbekommen. Hab nur noch ein Problem.
Ich binde die FunctionsMatrix.h in die Form1.h ein
Und im Klickevent möchte ich dann die Funktionen aus der FunctionsMatrix.h aufrufen. Bekomme aber den Fehler "Funktionsname" Bezeichner wurde nicht gefunden.
Rufe die Funktionen so auf:array<float,2>^ aMatrixA; array<float,2>^ aMatrixB; array<float,2>^ aMatrixC; aMatrixA = readoutMatrix(txtBoxMatrixA->Text); aMatrixB = readoutMatrix(txtBoxMatrixB->Text); aMatrixC = doMatrixMultiplication(aMatrixA, aMatrixB); write(aMatrixC);
Und habe ganz oben in der Form1.h so eingebunden
#pragma once #include "FunctionMatrix.h"
Warum kennt der die Funktionen denn nicht?