Problem mit CreateWindowEx

nitgun

Mitglied
moin, moin,

ich befasse mich derzeit mit MS Visual C++. Hier aus dem Forum habe ich mir dazu den Link http://www.cpp-tutor.de gesucht und damit angefangen. War bis jetzt auch sehr erfolgreich (war ja auch noch nicht schwer). Jetzt soll ich mir mein erstes Fenster erstellen und scheitere kläglich. Aus einem mir unerklärlichen Grund liefert die Funktion CreateWindowEx immer 0 zurück. Sieht da eventuell irgendjemand meinen Fehler
Vielen Dank für eure Hilfe.

mfg

nitgun
 

Anhänge

  • FirstWin.txt
    1,5 KB · Aufrufe: 56
Da sehe ich auf den ersten Blick auch keinen Fehler. Aber nulle mal das WNDCLASSEX aus, da ist sonst ne Menge Müll mit drin.

Wenn CreateWindowEx immer noch NULL zurückgibt, dann rufe mal GetLastError auf. Den Fehlercode gibst du dann im Fehlersuch-Programm (Visual Studio->Extras) ein. Da sollte doch ein Hinweis dabei sein.
 
Vielen Dank für den Tip. Das Nullen der WNDCLASSEX hat nicht geholfen. Also habe ich GetLastError probiert. Und siehe da, das liefert mir den Fehler 1407, was so viel bedeutet wie, dass die Fensterklasse nicht gefunden werden konnte. Das hat mich erst erstaunt.....
Während ich gerade das da oben geschrieben habe, ist mir aufgefallen, dass der das gar nicht wissen kann, denn man sollte schon die Fensterklasse erst einmal registrieren, bevor man versucht, sie zu verwenden. :rolleyes:
Beim Rumspielen mit GetLastError bin ich aber auf ein neues Problem gestoßen: Wie schaffe ich es eigentlich, in einer Messagebox Text und den Fehlercode auszugeben, den mit GetLastError liefert?
Vielen Dank.

mfg

nitgun
 
Das hatte ich in der Hilfe auch schon gefunden und ist offensichtlich die eleganteste Lösung. Mir wäre aber irgendetwas total einfaches lieber. Eigentlich will ich ja nur eine Zahl ausgeben. Mein Bruder hat mir mal gesagt, dass es auch möglich ist, neben dem eigentlichen Programm noch eine Konsole offen zu haben, in die man dann relativ einfach schreiben kann (ich vermute mal, dass man da dann wieder cout verwenden kann). Leider ist er gerade nicht greifbar, um mir das zu erklären.
Für mein Problem mit der MessageBox müsste ich ja eigentlich nur den DWORD-Wert von GetLastError in einen String wandeln, mit meinem restlichen Text verbinden und dann in ein LPCTSTR konvertieren.

mfg

nitgun
 
Da ich den stringstream nicht ausstehen kann (ein extra Objekt erzeugen um eine Zahl umzuwandeln soll elegant sein?), verwende ich mal die C-Methode:

DWORD dwWert = 17;

TCHAR szTarget[200];

_tprintf( szTemp, T( "Fehler: %x" ), dwWert );


Das ergibt die Zahl als Hexwert in szTemp.
 

Neue Beiträge

Zurück