Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Harry222

Alter Hase

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

11

26.05.2011, 16:13

Versuchs mal mit

C-/C++-Quelltext

1
CreateDirectory((LPCTSTR)"Update\\", 0);

Das LPCTSTR übrigens, weil sonst ein Fehler wegen falschem Datentyp entstehen kann! ;)

EDIT:
Machs lieber so: ^^

C-/C++-Quelltext

1
CreateDirectory(TEXT("Update\\"), 0);

Normaler cast scheint nicht zu funktionieren! (Bei mir kamen nur irgendwelche komischen Zeichen)

Mfg Harry222

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Harry222« (26.05.2011, 16:21)


valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

12

26.05.2011, 16:14

warum geht dann net CreateDirecoty("Update\",0);
Update wird als fehler angezeigt.
Wie wär's wenn du "\" maskierst? (so wird "Update\" zu "Update\\"). Ansonsten maskierst du das '"', wodurch alles zu nem String wird.
Mit ner anständigen Entwicklungsumgebung sieht man auch, dass das garnicht funktionieren kann.

//edit: Damn, Ich war zu langsam :D
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

26.05.2011, 16:26

EDIT:
Machs lieber so: ^^

C-/C++-Quelltext

1
CreateDirectory(TEXT("Update\\"), 0);

Normaler cast scheint nicht zu funktionieren! (Bei mir kamen nur irgendwelche komischen Zeichen)

Exakt. Mit dem Cast verbietest du dem Compiler nur dir zu sagen dass es falsch ist, in keinem Fall wirds dadurch auf einmal richtig. Nur weil du den Compiler glauben machst dass der Pointer auf dieses char Array eigentlich ein Pointer auf ein wchar_t Array ist wird das worauf der Pointer zeigt nicht plötzlich tatsächlich zu einem wchar_t Array...

Harry222

Alter Hase

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

14

26.05.2011, 16:31

Exakt. Mit dem Cast verbietest du dem Compiler nur dir zu sagen dass es falsch ist, in keinem Fall wirds dadurch auf einmal richtig. Nur weil du den Compiler glauben machst dass der Pointer auf dieses char Array eigentlich ein Pointer auf ein wchar_t Array ist wird das worauf der Pointer zeigt nicht plötzlich tatsächlich zu einem wchar_t Array...

Jop! Hatte in dem Moment vergessen, dass man das nicht einfach casten kann! ^^
Hab es dann schließlich gemerkt, als ich mir den erstellten Ordner angesehen hatte! ;)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

15

26.05.2011, 16:45

Ab jetzt C++ Casts benutzen und du wirst dieses Problem nie wieder haben :D
Jedenfalls wenn du immer static_cast benutzt und die restlichen Casts nur anwendest wenn du weißt was du tust. :D
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

26.05.2011, 16:46

Ab jetzt C++ Casts benutzen und du wirst dieses Problem nie wieder haben :D

C++ Casts ändern daran nix.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

17

26.05.2011, 16:47

habs editiert.
oder würde static_cast<LPCTSTR>("Update\\") funktionieren?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

26.05.2011, 16:49

Nein, das würde nichtmal kompilieren und wenn du einen reinterpret_cast verwenden würdest wärs immer noch genauso falsch wie der C-Cast denn jeder Cast ist hier einfach nur falsch (vielleicht so zur Info: C-Casts funktionieren in C++ so dass alle C++-Casts in einer definierten Reihenfolge durchprobiert werden und der erste der funktioniert genommen wird). Das TEXT() Makro ist die generische Lösung. Alternativ könnte man natürlich auch explizit dafür sorgen dass die ANSI Variante der Funktion aufgerufen wird (indem man z.B. direkt CreateDirectoryA() called oder das Character Set in den Projekteigenschaften auf Not Set stellt).

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

19

26.05.2011, 16:54

Du hast mich wohl falsch verstanden. Ich meinte damit, dass er gemerkt hätte, dass es falsch ist hier zu casten wenn er static_cast verwendet hätte.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

26.05.2011, 16:55

Achso^^

Werbeanzeige