Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
C++progging Senior JLI'ler
Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
Verfasst am: 08.09.2006, 07:06 Titel: Probleme mit HelloWindows |
|
|
Jetzt konnt ich mir dank DSL endlich VC++05 und PSDK saugen.Da
WdM2.0 auf Windows sein soll, hab ich mir als Test eine Art verkürztes Hello-
Windows geschrieben:
CPP: | #include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR cmdLine,
int cmdShow)
{
MessageBox(0,"Test","Test",MB_OK);
return 0;
}
|
dann aber das:
Zitat: |
1>------ Erstellen gestartet: Projekt: WdM20, Konfiguration: Release Win32 ------
1>Kompilieren...
1>WdM20.cpp
1>.\WdM20.cpp(9) : error C2664: 'MessageBoxW': 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>Das Buildprotokoll wurde unter "file://e:\Projects\WdM20\WdM20\Release\BuildLog.htm" gespeichert.
1>WdM20 - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
|
Der will irgendwas mit Unicode, aber in JLI3 in Kapitel 12 wurde
nicht MessageBoxW sondern MessageBox verwendet.Wenn ich es
aber auf unicode umstelle:
CPP: | #include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR cmdLine,
int cmdShow)
{
MessageBoxW(0,L"Test",L"Test",MB_OK);
return 0;
}
|
Kommt das aus:
Zitat: |
1>------ Erstellen gestartet: Projekt: WdM20, Konfiguration: Release Win32 ------
1>Kompilieren...
1>WdM20.cpp
1>Verknüpfen...
1>WdM20.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__MessageBoxW@16".
1>MSVCRT.lib(crtexe.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_main".
1>E:\Projects\WdM20\Release\WdM20.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://e:\Projects\WdM20\WdM20\Release\BuildLog.htm" gespeichert.
1>WdM20 - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
|
_________________ http://gtsp.gt.funpic.de
NEU: http://gtspforum.gt.funpic.de - das dazugehörige board
ProjectX for PSP - Jetzt runterladen!!
unter http://www.pspsource.de/news.php?extend.4537 |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 08.09.2006, 07:38 Titel: |
|
|
Schau mal in die Compilereinstellungen und stelle dort von Unicode auf Multibyte um. Es sieht so aus, also ob du irgendwas falsch eingestellt hast. Ansonsten kannst du auch die Funktionen MessageBoxA und MessageBoxW direkt aufrufen. |
|
Nach oben |
|
|
C++progging Senior JLI'ler
Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 08.09.2006, 14:20 Titel: |
|
|
Rechte Maustaste auf dein Projekt->Eigenschaften->Konfigurationseinstellungen->Allgemein->Zeichensatz
Da sollte es sein. _________________ "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 |
|
|
C++progging Senior JLI'ler
Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
Verfasst am: 08.09.2006, 14:36 Titel: |
|
|
Geändert hat sich auch net viel,er zeigt das selbe an wie oben,
wenn ich using namespace std eintippe
CPP: | #include <windows.h>
using namespace std;
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR cmdLine,
int cmdShow)
{
MessageBox(0,"Test","Test",MB_OK);
return 0;
}
|
kommt das raus:
Zitat: |
Kompilieren...
WdM20.cpp
.\WdM20.cpp(2) : error C2871: 'std': Es ist kein Namespace mit diesem Namen vorhanden
|
aber bei HelloWorld(DOS) funzts _________________ http://gtsp.gt.funpic.de
NEU: http://gtspforum.gt.funpic.de - das dazugehörige board
ProjectX for PSP - Jetzt runterladen!!
unter http://www.pspsource.de/news.php?extend.4537 |
|
Nach oben |
|
|
manu Super JLI'ler
Alter: 35 Anmeldedatum: 09.03.2006 Beiträge: 327 Wohnort: allgäu (DE) Medaillen: Keine
|
Verfasst am: 08.09.2006, 14:47 Titel: |
|
|
Es kann sein, dass ich irgendwas falsch verstanden/gelesen habe, aber es hat dir doch niemnd gesagt, dass du "using namespace std" verwenden sollst. Da kommt klarerweise der von dir gepostete Fehler, da der namespace in der windows.h wohl nicht vorhanden ist. Wenn du noch "iostream" includierst, wird der fehler nicht mehr kommen.. aber wozu überhaupt den namensraum std verwenden? |
|
Nach oben |
|
|
C++progging Senior JLI'ler
Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
Verfasst am: 08.09.2006, 15:36 Titel: |
|
|
Ohne Namespace3 Fehler mit 1..
Mich wunderts dass er immer wieder Fehler anzeigt,die eigenlich keinen
ursprung in der Syntax haben,neustes PsdK,alles eingebunden
als könnte er nur helloworld kompiliren
und woher das:?
Zitat: |
Zitat: |
1>------ Erstellen gestartet: Projekt: WdM20, Konfiguration: Release Win32 ------
1>Kompilieren...
1>WdM20.cpp
1>Verknüpfen...
1>WdM20.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__MessageBoxW@16".
1>MSVCRT.lib(crtexe.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_main".
1>E:\Projects\WdM20\Release\WdM20.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://e:\Projects\WdM20\WdM20\Release\BuildLog.htm" gespeichert.
1>WdM20 - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
|
|
_________________ http://gtsp.gt.funpic.de
NEU: http://gtspforum.gt.funpic.de - das dazugehörige board
ProjectX for PSP - Jetzt runterladen!!
unter http://www.pspsource.de/news.php?extend.4537 |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 08.09.2006, 17:27 Titel: |
|
|
Du linkst nicht gegen die User32.lib.
Ich empfehle:
http://old.germangamedev.de/index.php?site=article&id=28 _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
C++progging Senior JLI'ler
Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
|
Nach oben |
|
|
sp3cK-r0LL3 Senior JLI'ler
Alter: 34 Anmeldedatum: 18.06.2004 Beiträge: 275
Medaillen: Keine
|
Verfasst am: 17.09.2006, 11:00 Titel: |
|
|
und vor allem nicht das Tutorial im Germangamedev befolgen, da dort die Veränderung einer falschen Datei beschrieben wird _________________ sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; apt-get install condom; mount; fsck; gasp; more; yes; more; umount; apt-get remove --purge condom; make clean; sleep |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 17.09.2006, 11:29 Titel: |
|
|
sp3cK-r0LL3 hat Folgendes geschrieben: | und vor allem nicht das Tutorial im Germangamedev befolgen, da dort die Veränderung einer falschen Datei beschrieben wird |
Wieso? Bei mir hat alles geklappt. Außerdem geht das Tutorial 1:1 nach dem Orginalem auf der msdn. _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
sp3cK-r0LL3 Senior JLI'ler
Alter: 34 Anmeldedatum: 18.06.2004 Beiträge: 275
Medaillen: Keine
|
Verfasst am: 17.09.2006, 21:42 Titel: |
|
|
das Einbinden des SDKs nicht, denn beim Visual Studio Express muss man eine bestimmte Datei verändern und die Libs einbinden, und die ist in dem Tutorial nicht dieselbe wie auf der von Microsoft gestellten Hilfeseite... und nur letztere funzt auch richtig! Anosnten bekommt man den imp@16 Fehler wegen fehlender user32.lib! _________________ sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; apt-get install condom; mount; fsck; gasp; more; yes; more; umount; apt-get remove --purge condom; make clean; sleep |
|
Nach oben |
|
|
unsigned long Junior JLI'ler
Anmeldedatum: 02.07.2006 Beiträge: 52
Medaillen: Keine
|
Verfasst am: 11.10.2006, 11:45 Titel: |
|
|
sp3cK-r0LL3
korrekt. Für die neue Version des Tutorials ist dies alles schon längst ausgebügelt. Auch Dinge wie __improve@64 Fehler wurden ausgebügelt. Auch Dinge wie TuneUp-Utilities die die Konfiguration von Microsoft Visual Studio 2005 zerschiessen werden erwähnt, sowie die neuen Lizenzabkommen seit dem 6. November 2006 werden erläutert. Kurz: 7 A-4 Seiten mehr und 33 weitere Bilder.
Jedoch wäre es sehr gut wenn Du sagst welche Datei verändert werden soll, damit die Leute hier auch das Tutorial weiter benutzen können (Wo es eine enorme Breite der Zustimmung bisher gab, und sehr viel positives Feedback!) jedoch die richtige Datei editieren. Wäre ja nur fair den anderen Neulingen gegenüber. Denn Microsoft hat nicht so ein einfaches Installationstutorial |
|
Nach oben |
|
|
sp3cK-r0LL3 Senior JLI'ler
Alter: 34 Anmeldedatum: 18.06.2004 Beiträge: 275
Medaillen: Keine
|
Verfasst am: 11.10.2006, 17:10 Titel: |
|
|
unsigned long hat Folgendes geschrieben: | Denn Microsoft hat nicht so ein einfaches Installationstutorial |
mjoo, also wenn man das PSDK-Tutorial mit den 5 Schritten von Microsoft liest, sollt eman es schon kapieren:
Klick mich an, wenn du etwas Englisch kannst! _________________ sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; apt-get install condom; mount; fsck; gasp; more; yes; more; umount; apt-get remove --purge condom; make clean; sleep |
|
Nach oben |
|
|
unsigned long Junior JLI'ler
Anmeldedatum: 02.07.2006 Beiträge: 52
Medaillen: Keine
|
Verfasst am: 11.10.2006, 17:16 Titel: |
|
|
sp3cK-r0LL3
Die Datei die in Punkt 4 geändert wird, ist die Selbe die ich ändere: orewin_express.vsprops
Die Datei die in Punkt 5 geändert wird, ist die Selbe die ich ändere: AppSettings.htm
Pfade sind ebenfalls exakt gleich beschrieben.
Ergo nix falsche Datei.
Jedenfalls sehe ich hier: http://old.germangamedev.de/index.php?site=article&id=28
keine andere Datei. Daher die Frage: Welche Datei meinst Du jetzt explizit, denn wie PeaceKiller schon sagte: Es ist 1:1.
Es gibt eine Datei bei der man sich vertun kann, aber net in dem Tutorial. Dazu kommt der __imp@16 durch was ganz anderes zu stande.
Daher sorry wenn ich Frage: Aber welche Datei meinst Du, nicht das hier das Tutorial wegen unseren kleineren Streiterein schlecht geredet wird. Dazu würde ich es, wenn ein Fehler drin ist, sehr gerne für andere Neulinge korregieren/erweitern und Dich sogar für die 2. Version namentlich nennen für den Tipp.
Noch zu Deiner Aussage: Es gab viele mindestens 50 allein im spieleprogrammierer.de die es nicht auf anhieb geschafft haben mit der MSDN, aber mit meinem Tutorial. Und das Tutorial ist nicht nur dort der Renner |
|
Nach oben |
|
|
|