Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
peterbub JLI'ler
Anmeldedatum: 24.07.2005 Beiträge: 109
Medaillen: Keine
|
Verfasst am: 05.01.2006, 01:05 Titel: Fighter Programm geht nicht |
|
|
Hallo,
ich bin seit neustem auf den VC++ EXPRESS umgestiegen und schaffe jetzt die einfachsten Sachen nicht mehr.
Da in diesem Forum jeder das Fighter-Programm aus dem Buch kennt,
nehme ich es gerne als Beispiel.
Ich Möchte den Fighter zum laufen bringen
und gehe folgender maßen vor:
Neues Project / Win32 Console Application
Name : test OK
Applications Settings auf Windows application
Additional options : empty
Finish
dann koppiere ich alle .h und .cpp in das Projekt, Compile und
erhalte so fehler wie:
c:\cpp-express\test\inputmanager.cpp(41) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [45]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
also ich kann keine MessageBox mehr erstellen.
den Orginal Fighter kann ich laden und compilen : ALLES GEHT
was fehlt bei mir
Gruß |
|
Nach oben |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 05.01.2006, 08:26 Titel: |
|
|
Hi,
du hast die Lösung schon geschrieben
Der Übergabeparameter für die Messagebox hat soch wohl geändert.
Die Messagebox hatte bisher einen "LPCSTR" erwartet was in wirklichkeit "char*" ist. Google mal nach dem "LPCWSTR" der jetzt verlangt wird, dann siehst du den Unterschied.
Alternativ kannst du die Variable die du benutzt ändern.
Anstelle von
Code: |
char* strVariable = "Text der Messagebox";
|
kannst du es mit
Code: |
LPCWSTR strVariable = "Text der Messagebox";
|
versuchen. Dann bist du zwar noch nicht viel schlauer hast dein Problem aber umgangen.
Grüße |
|
Nach oben |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 05.01.2006, 08:36 Titel: |
|
|
wchar_t ist im Gegensatz zu char 2 Byte groß und nicht 1 Byte, dadurch ist sein Fassungsvermögen enorm.
Die Benutzung ist relativ einfach: Alles was mit char zu tun hatte ist nun mit wchar_t inkompatibel.
Also z.B. strcpy, std::cout, std::cin, strcmp, sprintf, printf, uvm.
Keine Panik, Microsoft hat dafür auf der MSDN mehrere Hundert Artikel die dieses Thema behandeln! Es gibt Ersatzfunktionen die halt auf wchar_t getrimmt wurden wie z.B. sprintf (ANSI) durch swprintf (Unicode) ersetzt wurde. Einfach in der MSDN nach den jeweiligen Funktionen suchen. Aber eines ist klar: Jede Funktion die es mit char gab, hat Microsoft vor mehr als 1 Jahrzehnt auf Unicode dubliziert.
Wertezuweisungen werden durch das Präfix L gekennzeichnet:
CPP: | char value_a = 'a';
wchar_t value_w = L'a';
char value_a_string[] = "hallo welt!";
wchar_t value_w_string[] = L"hallo welt!"; |
Also eigentlich nichts sonderlich schlimmes.
Wenn Du in Unicode arbeitest, laufen deine Programme nur noch auf NT-Systemen und nicht mehr auf DOS-Kernel Systeme wie Win9x.
Wie in meinem Tutorial über den Microsoft Visual C++ 2005 Express beschrieben, werden ALLE Programme nur noch als Unicodeprogramm erstellt. ANSI ist Steinzeit. Unicode is the future
- Patrick. _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
City Hunter Super JLI'ler
Alter: 39 Anmeldedatum: 18.04.2004 Beiträge: 330 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 19.09.2006, 08:40 Titel: Hallo |
|
|
Ja ich habe auch Probleme mit dem Programm.
Ich kann es Kompilieren und so weit ausführen das er mich fragt ob ich das Spiel im Fullscreenmodus spielen will oder nicht, wenn ich eins von beiden anklicke kommt denn ein Windows Fehler, ob ich das Problem senden will oder nicht.
Hat jemand auch sohne Probleme?
Die anderen klappen, ausser noch die SpriteCollisionPixel.
System: Windows XP, AMD 3800+ AM2, 1GB DDRAMII,eine 320GB Platte IDE, Asus 7600GT und eine Blaster Audigy SE von Creative. Habe das DirectX9.0c und den neueste NVidia Treiber drauf. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 19.09.2006, 09:49 Titel: |
|
|
Schonmal versucht den Fehler einzugrenzen ala Debuggen etc? Hellseher gibts hier meiner Meinung nach nur wenige und du bist sicher schon lang genug hier um zu wissen das wir mehr Informationen brauchen. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
City Hunter Super JLI'ler
Alter: 39 Anmeldedatum: 18.04.2004 Beiträge: 330 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 19.09.2006, 10:32 Titel: |
|
|
Fallen hat Folgendes geschrieben: | Schonmal versucht den Fehler einzugrenzen ala Debuggen etc? Hellseher gibts hier meiner Meinung nach nur wenige und du bist sicher schon lang genug hier um zu wissen das wir mehr Informationen brauchen. |
Ich habe ja von Christian die SpriteCollisionPixel gekriegt,mit der exe schon dazu. Wollte das Programm testen und da kam der fehler.
Und da habe ich es noch nicht mal durchen Kompiler gejagt.
1.Bild
2.Bild
|
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 19.09.2006, 11:03 Titel: |
|
|
City Hunter hat Folgendes geschrieben: |
Und da habe ich es noch nicht mal durchen Kompiler gejagt.
|
Und du erwartest das wir nun alles lösen? _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.09.2006, 11:09 Titel: |
|
|
Die Programme benötigen die Grafikdateien, die sind nicht dabei. Du muss entweder die Pfade anpassen oder die Programme in die richtigen Verzeichnisse kopieren. |
|
Nach oben |
|
|
City Hunter Super JLI'ler
Alter: 39 Anmeldedatum: 18.04.2004 Beiträge: 330 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 19.09.2006, 11:18 Titel: |
|
|
Christian Rousselle hat Folgendes geschrieben: | Die Programme benötigen die Grafikdateien, die sind nicht dabei. Du muss entweder die Pfade anpassen oder die Programme in die richtigen Verzeichnisse kopieren. |
Ich habe ja das Buch von dir gekauft, mit der CD. Das JLI_FIGHTER Programm zeigt auch sohne fehler. Da sind aber alle Grafikdateien drin in der Global.h |
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 19.09.2006, 11:23 Titel: |
|
|
Soweit ich mich erinnern kann, sind die Grafikpfade, die in der Global.h stehen nicht ganz richtig. Musst mal gucken wo sich die Grafiken befinden und dan entsprechend anpassen. Ich glaube dazu gabs schonmal ein Thema wo auch die richtigen Pfade standen. Musst evtl. mal suchen. _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
|