Problem bei Einstieg!
-
Hallo,ich habe mir heute das Buch DirectX Spieleprogrammierung mit C++ besorgt und habe grad mal nen Fehler.Undzwar soll ich einfach am Anfang ein Win32-Projekt erstellen und dort noch ne cpp datei habe ich auch alles gemacht und dann einfach den Folgenden Code übernehmen:
#define WIN32_LEAN_AND_MEAN #include <windows.h> int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) { MessageBox(0, "Hurra, man kann mich sehen!", /*Inhalt Dlg.-Box*/ "Mein erstes Windows-Programm",/*Titelleiste*/ MB_OK | MB_ICONEXCLAMATION); /*OK-Button+!Bild*/ return 0; }Nun wenn ich es mache kommt aber ein fehler:
------ Erstellen gestartet: Projekt: Das erste Besipiel, Konfiguration: Debug Win32 ------ Das Manifest wird eingebettet... .\Debug\Das erste Besipiel.exe.intermediate.manifest : general error c1010070: Failed to load and parse the manifest. Das System kann die angegebene Datei nicht finden. Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\$Ilja$\Eigene Dateien\Eigene Musik\C++ Spiele\Das erste Windows programm\Das erste Besipiel\Das erste Besipiel\Debug\BuildLog.htm" gespeichert. Das erste Besipiel - 1 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========Ich habe DirectX SDK November 2008(hieß die Installation unter mocrosoft.com) bereits installiert muss ich irgendwas davor mache also bevor ich mit einem Win32 Projekt beginne?Weil bis her habe ich nur mit KOnsolenanwendungen gearbeitet.
Hoffe kann einer sagen was los ist und was ich vielelicht falsch mache.
-
naja, ein build fehler, kein d3d usw. fehler. derswegen verschieb ich es mal.
btw. versuch mal ohne leerzeichen

-
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
rapso schrieb:
naja, ein build fehler, kein d3d usw. fehler. derswegen verschieb ich es mal.
btw. versuch mal ohne leerzeichen

meinst du das mit Leerzeichen im Quellcode?
Sorry,habe keine Ahnung von WinAPI,habe wie gesagt davor nur KOnsolenanwendungen geschrieben und das Beispiel ist original aus dem Buch DirectX in 21 Tagen C++ übernohmen.Obwohl der Autor dort auch mit Visual C++ arbeitet scheint irgednwas nciht stimmen oder muss ich vielelicht davor irgendwie die DirectX SDK Files für den Kompiler bekannt machen ich habe bisher nur Include und Lib eigebunden richt das oder muss ich alles einbinden?Wollte das andere erstmal nicht anpacken da ich damit sonst nie gearbeitet habe oder besser war schon standart da.
-
Das Beispiel sieht für WinApi irgendwie verkrüppelt aus. Wo ist das Hauptfenster der Anwendung? Vielleicht besorgst Du dir für den Einstieg ein anderes Buch. Petzold: Windows-Programmierung wäre zu empfehlen.
-
berniebutt schrieb:
Das Beispiel sieht für WinApi irgendwie verkrüppelt aus. Wo ist das Hauptfenster der Anwendung? Vielleicht besorgst Du dir für den Einstieg ein anderes Buch. Petzold: Windows-Programmierung wäre zu empfehlen.
ja,gut danke aber ich wollte eigentlich eher auf Spieleprogrammierung eingehen also suche ich eher ein Buch was bedes beschreibt und eben soviel wie ich zum Programmieren von Spielen brauche,den ich will mich nicht speziell mit WINAPI beschäftigen sondern eher entweder mit DirectX oder OpenGL!
-
http://www.win-api.de/tutorials.php Kann ich empfehlen.
Hier ein simples beispiel:
#include "resource.h" #include "windows.h" INT_PTR CALLBACK DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); // Main entry point int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hwnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc); MSG Msg = {0}; while(GetMessage(&Msg, NULL, 0, 0) > 0) { if(!IsDialogMessage(hwnd, &Msg)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } } // Standard return return 0; } INT_PTR CALLBACK DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { // Handle the message switch(uMsg) { // Dialog initialize case WM_INITDIALOG: { MessageBox(0, "Hurra, man kann mich sehen!", /*Inhalt Dlg.-Box*/ "Mein erstes Windows-Programm",/*Titelleiste*/ MB_OK | MB_ICONEXCLAMATION); /*OK-Button+!Bild*/ } break; // Commands case WM_COMMAND: { int button = LOWORD(wParam); switch (button) { // Exit case IDCANCEL: { PostQuitMessage(0); } break; } }break; default: { // Message not handled return FALSE; } } // Message handled return TRUE; } //-----------------------------------------------------------------------------------------------------------------------------------------Denke nicht, dass es cleaner oder hübscher geht.
-
Geh mal in die Projekteigenschaften unter "Linker -> Manifestdatei" sollte "Manifest generieren" auf "Ja" stehen.