Je programmais l'exemple de code du livre de Frank Luna intitulé "Introduction à la programmation de jeux 3D avec DirectX 10". Le code est le premier exemple Win32 dans la section Annexe A: programmation Windows.Win32: Aucune fenêtre n'apparaît
À l'heure actuelle, le programme compile sous VC++ 2008/2010, mais aucune fenêtre ne s'affiche, bien que la session de débogage ait démarré et que je doive la fermer de force. Je ne sais pas où c'est, je n'utilise pas le mode Win32 Console, j'ai fermé toutes les autres fenêtres et aucun autre IDE ou session de VC++ n'est en cours d'exécution.
Une idée pourquoi cela pourrait-il se produire? PS: J'ai également vérifié mes processus. Il est en effet en cours d'exécution.
#include <Windows.h>
HWND ghMainWnd = 0;
bool InitWindowsApp(HINSTANCE instanceHandle, int show);
int Run();
LRESULT CALLBACK
WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nShowCmd)
{
if(!InitWindowsApp(hInstance, nShowCmd))
return 0;
return Run();
}
bool InitWindowsApp(HINSTANCE instanceHandle, int show)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = instanceHandle;
wc.hIcon = LoadIcon(0, IDI_APPLICATION);
wc.hCursor = LoadCursor(0, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = L"BasicWndClass";
if(!RegisterClass(&wc))
{
MessageBox(0, L"RegisterClass FAILED", 0, 0);
return false;
}
ghMainWnd = CreateWindow(
L"BasicWndClass",
L"Win32Basic",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
0,
0,
instanceHandle,
0);
if(ghMainWnd = 0)
{
MessageBox(0, L"Window Creation FAILED", 0, 0);
return false;
}
ShowWindow(ghMainWnd, show);
UpdateWindow(ghMainWnd);
return true;
}
int Run()
{
MSG msg = {0};
BOOL bRet = 1;
while(bRet = GetMessage(&msg, 0, 0, 0) != 0)
{
if(bRet == -1)
{
MessageBox(0, L"GetMessage FAILED", 0, 0);
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
LRESULT CALLBACK
WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_LBUTTONDOWN:
MessageBox(0, L"Hello, World", 0, 0);
return 0;
case WM_KEYDOWN:
if(wParam == VK_ESCAPE)
DestroyWindow(ghMainWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
Tout le monde n'a pas le livre. Pourriez-vous poster du code? Ou cela violerait-il la loi sur le droit d'auteur? –
Je ne pense pas. Code ajouté – IAE