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

Paulm

Frischling

  • »Paulm« ist der Autor dieses Themas

Beiträge: 69

Wohnort: Baden-Württemberg

Beruf: Schüler

  • Private Nachricht senden

1

16.06.2012, 12:26

Problem beim kompilieren von 10_3

Hallo,

Ich habe kürzlich Kapitel 10 von c++ für Spieleprogrammierer durchgearbeitet habe jedoch Probleme mit dem kompilieren der Code-Beispiele.
Wenn ich das jeweilige Projekt von der Cd lade und kompiliere funktioniert alles einwandfrei, wenn ich jedoch den Code in ein von mir angelegtes Projekt (wie im Buch beschrieben) kopiere und kompiliere dann kommt folgende Fehlermeldung:

1>Kompilieren...
1>cl : Befehlszeile warning D9007 : "/Gm" erfordert "/Zi oder /ZI"; Option wird ignoriert.
1>10_33.cpp
1>.\10_33.cpp(109) : error C2440: '=': 'const char [16]' kann nicht in 'LPCWSTR' konvertiert werden
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(125) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [16]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(149) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [7]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(161) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(173) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [7]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(185) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [7]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(218) : error C2664: 'GetWindowTextW': Konvertierung des Parameters 2 von 'char [256]' in 'LPWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(222) : error C2664: 'SetWindowTextW': Konvertierung des Parameters 2 von 'char [256]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(223) : error C2664: 'SetWindowTextW': Konvertierung des Parameters 2 von 'const char [1]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\10_33.cpp(237) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [18]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://c:\Projekte\10_33\10_33\Release\BuildLog.htm" gespeichert.
1>10_33 - 10 Fehler, 1 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

Ich wollte nun wissen was ich da falsch mache und ob etwa zusätliche Projekteinstellungen nötig sind oder ob ich sonst etwas vergessen habe.

Danke im voraus für eure Hilfe.

Paul
»Paulm« hat folgendes Bild angehängt:
  • error.PNG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Paulm« (16.06.2012, 16:03)


NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

2

16.06.2012, 12:29

Unicode

Achja, willkommen im Forum :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?

Paulm

Frischling

  • »Paulm« ist der Autor dieses Themas

Beiträge: 69

Wohnort: Baden-Württemberg

Beruf: Schüler

  • Private Nachricht senden

3

16.06.2012, 15:51

Hi,

danke für deinen Hinweis. :thumbup:
Kannst du mir vlt helfen und sagen was da bei mir schief läuft?

S4My

unregistriert

4

16.06.2012, 19:19


Kannst du mir vlt helfen und sagen was da bei mir schief läuft?
Der Link sollte das denke ich mal erledigen :D . Hast du dir das alles wirklich durchgelesen? ;) .
Ich will hier keine Halbwahrheiten verbreiten, obwohl es manchmal den Anschein haben mag, aber das Problem ist recht einfach gelöst. Wie in dem Link beschrieben, so gibt es einen Unterschied ob ich Unicode verwende oder nicht. Für das was du hier machen möchtest musst du auf diesen Standard zurückgreifen. Ich stand selbst vor diesem Problem und man muss eigentlich nur ein Paar Dinge machen um das Programm zum laufen zu bringen:
  • anstelle const char*, const TCHAR* verwenden
  • jegliche Strings welche du verwenden möchtest mit dem Makro _T() in Unicode umwandeln, auch bei Zuweisungen wenn ich das recht in Erinnerung habe
das war es dann glaube ich. Bei mir hat das gereicht um ohne Fehler das Fenster zu starten. Wie allerdings bereits erwähnt ist das hier eine gekürzte Version der Geschichte, die, hoffentlich nicht, Fehler enthalten könnte, was ich allerdings nicht wirklich glaube.
Um nochmal auf das anfängliche Thema "hast du das auch gelesen" zurückzukommen: Wenn du das noch nicht getan hast, schnell lesen. Man kommt nicht drum rum so etwas in sich Wort für Wort aufzunehmen, zumindest nicht wenn man wirklich ernsthaft Programme schreiben möchte. Sollte man einmal einfach keine Lust haben dies zu tun, naja, raus gehen, Sport treiben, Spiele spielen oder was auch immer. Liegt dir wirklich etwas an der Programmierung so kommt die Lustlosigkeit allein von der zu langen Beschäftigung mit diesem Thema. Kurz ablenken reicht meistens :) . Solltest du es doch getan haben, vergiss was ich geschrieben habe :D .

Mlg
S4My

Paulm

Frischling

  • »Paulm« ist der Autor dieses Themas

Beiträge: 69

Wohnort: Baden-Württemberg

Beruf: Schüler

  • Private Nachricht senden

5

17.06.2012, 13:18

Klappt auch nicht .
Aber vor allem verstehe ich nicht warum das Beispiel im Buch so abgedruckt ist und nicht auf einem normalen Pc läuft
außerdem ist es komisch dass ich das komplette Projekt von der CD einwandfrei kompilieren kann.

paulm

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

6

17.06.2012, 13:22

Man geht auf Projekt/Eigenschaften/Konfigurationseigenschaften/Allgemein und wählt im Feld Zeichensatz entwerde Unicode oder Multi-Byte aus.

Nehm einfach "nicht festgelegt" und fertig. Unicode wirst du in nächster Zeit sowieso nicht benötigen, also kannst du dich erstmal aufs wesentliche Konzentrieren(C++ lernen). Das Kapitel kannst du auch getrost auf später verschieben oder ganz überspringen.
"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?

S4My

unregistriert

7

17.06.2012, 14:20

Klappt auch nicht .
Schade :( .

Das Kapitel kannst du auch getrost auf später verschieben oder ganz überspringen.
Das stimmt (leider). Wenn du später die SDL oder andere verwendest brauchst du das erstellen solcher Fenster nicht mehr.

Vielleicht jetzt nicht mehr von Bedeutung, aber mich würde interessieren welches Programm zu zum schreiben benutzt, das von der CD oder die aktuellere Version?

Mlg
S4My

PS: @NachoMan, "Nimm" oder "Nehmt", ist aber nicht so wichtig :D

Paulm

Frischling

  • »Paulm« ist der Autor dieses Themas

Beiträge: 69

Wohnort: Baden-Württemberg

Beruf: Schüler

  • Private Nachricht senden

8

17.06.2012, 14:37

Danke NachoMan für das Zitat von GR-PA denn,
ich hatte unter diesem menüpunkt unicode-Zeichensatz verwenden ausgewählt.

mit multi-byte funktionierts
danke
paulm

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

9

17.06.2012, 20:39

Ich hab doch beides durchgeschrichten und "nicht festgelegt" gesagt... Gewöhn dir an gründlicher zu lesen ;)
"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?

Paulm

Frischling

  • »Paulm« ist der Autor dieses Themas

Beiträge: 69

Wohnort: Baden-Württemberg

Beruf: Schüler

  • Private Nachricht senden

10

28.06.2012, 16:07

Habs geändert
wenn ich das programm jedoch in der release-konfiguration erstelle spuckt der compiler wieder mehrere fehlermeldungen aus

Werbeanzeige