Hi Leute!
Ich stehe als C++- Anfänger vor dem Problem, einer Funktion, die ich nur aus einer Header- Datei kenne, zwecks Datenbankzugriff den Namen einer Datei sowie deren Pfad als Argumente zu übergeben. Die Funktion sieht also so aus:
funktionsname( unsigned char*Dateiname, unsigned char* Pfad)
Mein Problem liegt nun darin, dass ich nicht weiss, wie ich den Dateinamen und den Pfadnamen übergeben kann. Ich habe versucht, die beiden Angaben als char- Felder zu übergeben, also beispielsweise so:
char*Dateiname="xyz.dat"; char*Pfad="C:\\\\xyz\\\\";
Dabei bekomme ich jedoch die Fehlermeldung, die Argumente könnten nicht nach "unsigned char" konvertiert werden und ich sollte den "reinterpret_cast- Operator" zur Umwandlung verwenden, von dessen Anwendung ich aber keine Ahnung habe.
Kann mir jemand vielleicht helfen und mir eine mögliche Form der Übergabe der beiden benötigten Angaben "Dateiname" und "Pfad" in einer zu "unsigned char" kompatiblen Form nennen???
Danke für eure Hilfe,
AcMe
Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge
Hi AcMe,
"echtes" (hihi...) C++ wäre:
reinterpret_cast neuerTyp (alterTyp)
//falls es nicht angezeigt wird: neuer Typ steht in spitzen Klammern!
Aber Vorsicht: der reinterpret_cast-Operator kann alles in
jedes casten (const-Eigenschaft kriegt er allerdings nicht weg).
Er versucht beim Kompilieren den erforderlichen Datentyp zu reinterpretieren, der Compiler denkt sich also:"Oho, er hat
einen geladenen reinterpret_cast, und er wird ihn verdammtnochmal
ohne Skrupel benutzen!"
Der Compiler gibt also klein bei, was manchmal zu echt eigenartigen
Effekten führen kann.
PeeWee
PS: nochmal zum "echten" C++ - ich nehm auch immer den
alten C-cast (neu)alt. Is viel einfacher als static_cast
schreiben zu müssen.