PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windowsprogrammierung - Fehler


TNT
2006-06-12, 09:12:02
Ich will mich mit Windows Programmierung beschäftigen, leider bekomme ich schon beim ersten Beispiel aus meinem Buch ein FehleR:

Code:

#define WIN32_LEAN_AND_MEAN
#include <windows.h>

int WINAPI WinMail(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow)
{
MessageBox(0, "Hurra, man kann mich sehen!"
"mein erstes Windows - Programm",
MB_OK | MB_ICONEXCLAMATION); // OK - Button + !Bild

return 0;
}

Fehler:

------ Build started: Project: haha, Configuration: Debug Win32 ------
Compiling...
win.cpp
c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2005\projects\haha\haha\win.cpp(8) : error C2660: 'MessageBoxW' : function does not take 3 arguments
Build log was saved at "file://c:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Visual Studio 2005\Projects\haha\haha\Debug\BuildLog.htm"
haha - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Gast
2006-06-12, 09:12:50
Kann mir einer sagen wo der Fehler liegt, oder was ich falsch mache?

Gast
2006-06-12, 09:48:25
Seht doch da:

'MessageBoxW' : function does not take 3 arguments


MessageBox(0, "Hurra, man kann mich sehen!","mein erstes Windows - Programm",MB_OK | MB_ICONEXCLAMATION);
^hier fehlt das KommaZwischen den beiden Zeichenketten fehlt ein Komma.

Gast
2006-06-12, 11:36:39
Und vor jeden String noch ein L schreiben damit du Unicode-Literale bekommst.

del_4901
2006-06-12, 11:42:42
Gast[/POST]']Und vor jeden String noch ein L schreiben damit du Unicode-Literale bekommst.

Ich glaub es ist cleverer (wenn er noch ein altes Buch hat) erstmal nur den Compiler auf ASCII-Code umzustellen. Weil die Umwandlung von ASCII nach Unicode, und wieder zurück, ist nicht ganz trivial.

Neomi
2006-06-12, 11:47:05
Und wo wir schonmal dabei sind, der Einstiegspunkt sollte schon "WinMain" heißen.

TNT
2006-06-13, 08:09:10
THX, stimmt Tippfehler :(

Ich muss aber trotzdem sagen, dass es nicht geht ^^.

Ok, in frt VS6.0 Autoren Edition geht es ohne Fehler, sobald ich aber versuche das ganze über VS2005 zu kompillieren und auszuführen gibts einen Fehler.

Ich habe gerade nicht die genaue Fehlermeldung, aber in der letzen Zeile, dem OK Button, war es nicht möglich ne char[28] typ in LPSTR umzuwandeln.

SgtTynis
2006-06-13, 08:21:35
Dann wuerde ich mal probieren die Verwendung von MFC fuer dieses Projekt zu deaktivieren.

Gast
2006-06-13, 08:41:09
SgtTynis[/POST]']Dann wuerde ich mal probieren die Verwendung von MFC fuer dieses Projekt zu deaktivieren.

Ist es, als ich ein neues Win32 Projekt erstellt habe, deaktivierte ich das MFC.

Gast
2006-06-13, 09:56:20
TNT[/POST]']Ich habe gerade nicht die genaue Fehlermeldung, aber in der letzen Zeile, dem OK Button, war es nicht möglich ne char[28] typ in LPSTR umzuwandeln.Du musst in den Projekteigenschaften unter Konfigurationseigenschaften-Zeichensatz die Unicodeunterstützung ausschalten. Das ist bei VS 2005 wohl standardmäßig eingestellt.

TNT
2006-06-14, 07:54:18
Guten Morgen

Danke, funktioniert :) Lag wohl wirklich an dem Unicode.

del_4901
2006-06-14, 13:42:14
TNT[/POST]']Guten Morgen

Danke, funktioniert :) Lag wohl wirklich an dem Unicode.

Japm das neue VS ist UniCode "energisch" ... Der neue Compiler compelliert sogar Unicode ( also man kann so lustige Lamda und delta Zeichen im Code verwenden ^^)