c++ Funktionen wollen nicht arbeiten

Wessy

Erfahrenes Mitglied
Hallo beisammen,

google, forumsuche hat nicht das richtige gebracht.

Wollt jetzt mal meinen Quellcode etwas aufräumen und dacht mir, ich mach einfach ne neue Quelldatei "RegFunctions.cpp" und verpacke alle Registrierungsfunktionen in die Quelldatei und mache da einzelne Funktionen draus.

Nun hab ich die Funktion "RegVariableErstellen" erstellt
Code:
bool RegVariableErstellen(HKEY hSchlüsselHKey,LPCSTR lSchlüsselName,char cVariable,char cWert){...}
nur kann ich dir jetzt aus der Prog.cpp aus nicht ansprechen. Bekomme immer die Fehlermeldung

error C3861: "RegVariableErstellen": Bezeichner wurde nicht gefunden.

Aber ich muss doch nur Header-Dateien explizit includieren, Quelldateien werden doch automatisch eingebunden oder?
 
Hallo Wessy,

eigentlich sollte es funktionieren. Hast du auch in der neuen CPP-Datei den Header eingebunden oder nur in der Prog.cpp?

Gruß
PhoenixLoe
 
Hallo PhoenixLoe,

ja also. Ich habe in beiden Dateien per #include "Header.h" meine eine Headerdatei eingebunden. Und in der Header-Datei steht dann
Code:
#pragma once//alle includes nur einmalig durchführen
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
#include <Windows.h>

using namespace std;
Na und die Funktion möchte ich dann aus der einen Quelldatei Client.cpp direkt in der
Code:
void main(){...}
aufrufen. Ich verstehe das auch nicht. Ich schreib zwar erst seit zwei Tagen mit C++, aber nach meinem bisherigen Verständnis sollte das doch klappen. Oder gibt es von VC++ 2008 Express Edition irgendwelche Sachen noch zu beachten? Oder kann ich die Funktion z.B. per
Code:
RegFunctions::RegVariableErstellen(....)
ansprechen bzw referenzieren?
 
Ok, bitte vergiss meinen Post. Ich hab jetzt das Programm noch ein Mal neu gestartet und jetzt funktionierts. Quasi der Microsoft Help Button!

Trotzdem Danke dir...
 
DAS schluckt der VS C++2008 niemals. void main ist kein Anwendungseinstiegspunkt (laut Standard), es sei denn du hast das selbst definiert und das bezweifel ich jetzt einfach mal anhand der Frage ;)

Achja, guck dir vllt. mal const, Referenzen usw. an, wenn du deinen Code schon gerade aufräumst ...

C++:
#include <stdio.h>
#include <stdlib.h>
Weiß wirklich nicht wofür du die beiden brauchst (okay system vllt. aber das sollte man eher nicht nutzen ;) )
Und wenn du sie WIRKLICH brauchst:
C++:
#include <cstdio>
#include <cstdlib>
... sind ja hier bei C++ (vgl. Dateiendung *.cpp ;) )
 
Ich wollt schon gerade schreiben, Devil. Ich hab mich gestern vertahn und es klappt nicht. Trottel ich!

Du meinst die zwei da oben kann ich getrost rauswerfen? Roger! Dachte die wären für irgendwelche Funktionen wichtig. Und momentan ist alles was die Funktionen auch nur irgendwie gebrauchen könnten einfach mal mit drin.

Immer noch das Problem, wie spreche ich meine Funktionen in einer anderen Quelldatei an? Oder anders gefragt: Wie macht ihr das? Habt ihr eine einzige Quelldatei für euren kompletten Code? Oder gibt es z.B. eine Möglichkeit Funktionen als public (denke gerade an VB) zu deklarieren?
 
Du brauchst einen Header, den du in deiner Quelldatei einbindest und in der Datei, in der du die FUnktion verwenden willst. Dann musst du Header und Source mit verlinken und schon geht es. Achja und in den Header muss die Deklaration ;)
 
LoL, sag mir doch einer dass ich auch Quelldateien importieren kann/muss.

Ja ok. Ich hab irgendwo gelesen dass man Quelldateien nicht importieren muss und diese automatisch includiert werden. Hmmm, sowas macht den Neuanfang in einer Sprach natürlich nicht gerade einfacher. Wo sollte ich denn eher meine Funktionen deklarieren? In einer Headerdatei oder in einer Quelldatei?
 
Deklariert wird alles was du auch in anderen Einheiten nutzen willst im Header. Kommt nur darauf an, wo du alles definierst ;)
 
Gut, dass hört sich alles.....eh....... irgendwie verständlich an! :)

Klappt auf jeden Fall nun wie gewünscht. Zum krönenden Abschluss hätte ich da aber noch eine kleine Frage: Momentan tuhe ich mich noch mit den einzelnen Datentypen schwer. Also, welchen Typen ich für Texte benutzen sollte? Als Auswahl steht ja

string
byte
lpcstr
und und und...

Wer blickt da noch durch was für was am besten ist? Irgendwie unterstützt das blöde VC 2008 EE keine Konvertierung in andere Typen!

PS.: Wo bekommt man denn einen Variant-Typen her? (frist alles :D)
 
Zuletzt bearbeitet:
Zurück