Hallo allerseits.
Seit kurzem beschäftige ich mich mit DirectX11 und habe mir deshalb ein Buch dafür gekauft, doch schon beim zweiten Kapitel, welches sich der Erstellung und Anzeige eines Windows-Fensters widmet scheitere ich.
Ich habe den Code aus dem Buch abgeschrieben, dennoch will es kein Fenster anzeigen
(leider keine CD vorhanden von der ich den Code kopieren könnte).
Der Compiler beendet das Programm mit dem Code -2, deshalb muss der Fehler zwischen Zeile 24 und 30 sein, doch ich finde ihn nicht.
Hier mein Code:
Sicherheitshalber auch noch die Compilermeldung:
Wenn ich nun den Code aus Zeile 31 und 32 entferne, wird keine Fehlermeldung seitens des Compilers ausgegeben, sondern schlichtweg kein Fenster angezeigt und nach ca. 1sec das Programm fehlerlos beendet.
Ich bedanke mich wie immer bei allen im Vorraus!
MFG XoR_1337
Seit kurzem beschäftige ich mich mit DirectX11 und habe mir deshalb ein Buch dafür gekauft, doch schon beim zweiten Kapitel, welches sich der Erstellung und Anzeige eines Windows-Fensters widmet scheitere ich.
Ich habe den Code aus dem Buch abgeschrieben, dennoch will es kein Fenster anzeigen

(leider keine CD vorhanden von der ich den Code kopieren könnte).
Der Compiler beendet das Programm mit dem Code -2, deshalb muss der Fehler zwischen Zeile 24 und 30 sein, doch ich finde ihn nicht.
Hier mein Code:
Code:
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance, LPWSTR cmdLine, int cmdShow) {
UNREFERENCED_PARAMETER(prevInstance);
UNREFERENCED_PARAMETER(cmdLine);
WNDCLASSEX wndClass = {0};
wndClass.cbSize = sizeof(WNDCLASSEX);
wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WndProc;
wndClass.hInstance = hInstance;
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = "DX11BookWindowClas";
if(!RegisterClassEx(&wndClass))
return -1;
RECT rc = {0, 0, 640, 480};
AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW, FALSE);
HWND hwnd = CreateWindowA("DX11BookWindowClass", "Blank Win32 Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL);
if(!hwnd)
return -2;
ShowWindow(hwnd, cmdShow);
MSG msg = {0};
while(msg.message != WM_QUIT) {
if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else {
//GameLoop
}
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
PAINTSTRUCT paintStruct;
HDC hDC;
switch(message) {
case WM_PAINT:
hDC = BeginPaint(hwnd, &paintStruct);
EndPaint(hwnd, &paintStruct);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
Sicherheitshalber auch noch die Compilermeldung:
Code:
"BlankWindow.exe": "XXXXXXXXXX\Debug\BlankWindow.exe" geladen, Symbole wurden geladen.
"BlankWindow.exe": "C:\Windows\SysWOW64\ntdll.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\kernel32.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\KernelBase.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\user32.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\gdi32.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\lpk.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\usp10.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\msvcrt.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\advapi32.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\sechost.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\rpcrt4.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\sspicli.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\cryptbase.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcr90d.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\imm32.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\msctf.dll" wurde geladen
"BlankWindow.exe": "C:\Windows\SysWOW64\uxtheme.dll" wurde geladen
Das Programm "[8524] BlankWindow.exe: Systemeigen" wurde mit Code -2 (0xfffffffe) beendet.
Wenn ich nun den Code aus Zeile 31 und 32 entferne, wird keine Fehlermeldung seitens des Compilers ausgegeben, sondern schlichtweg kein Fenster angezeigt und nach ca. 1sec das Programm fehlerlos beendet.
Ich bedanke mich wie immer bei allen im Vorraus!

MFG XoR_1337