Не могу понять!Пишу на Visual C++ 2010. Почему не отображается окно

vertex

Вот код проги :
#include <windows.h>
 
 LRESULT CALLBACK MainWinProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
 {
 switch(msg)
 {
 case WM_PAINT:break;
 case WM_DESTROY:
 PostQuitMessage(0);
 return(0);
 break;
 
 }
 return(DefWindowProc(hwnd,msg,wparam,lparam));
 }
 
 int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR lpcmdline,int ncmdshow)
 {
 WNDCLASSEX win;
 HWND hwnd;
 MSG msg;
 win.cbSize = sizeof(WNDCLASSEX);
 win.style = CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
 win.lpfnWndProc = MainWinProc;
 win.cbClsExtra = 0;
 win.cbWndExtra = 0;
 win.hInstance = hinstance;
 win.hIcon = LoadIcon(NULL,IDC_ARROW);
 win.hCursor = LoadCursor(NULL,IDC_ARROW);
 win.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
 win.lpszMenuName = NULL;
 win.lpszClassName = L"WINDOWSCLASS";
 win.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
 
 if(!(hwnd = CreateWindowEx(NULL,L"WINDOWSCLASS" ,L"Базовое окно для DirectX",WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0,500,400,NULL,NULL,hinstance,NULL)))
 
 
 return (0);
 
 ShowWindow(hwnd,SW_SHOWDEFAULT);
 UpdateWindow(hwnd);
 
 while(GetMessage(&msg,NULL,0,0))
 {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 return(msg.wParam);
 }
А выдает вот что и то после того как я насильно прекрощаю отладку :
"c.exe": Загружено: "C:\Users\чит\Documents\Visual Studio 2010\Projects\c\Debug\c.exe", Символы загружены. "c.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\user32.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\gdi32.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\lpk.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\usp10.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\msvcrt.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\advapi32.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\sechost.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\rpcrt4.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\sspicli.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\cryptbase.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены. "c.exe": Загружено: "C:\Windows\SysWOW64\imm32.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\msctf.dll", Невозможно найти или открыть файл PDB "c.exe": Загружено: "C:\Windows\SysWOW64\nvinit.dll", Невозможно найти или открыть файл PDB Программа "[2360] c.exe: Машинный код" завершилась с кодом 0 (0x0).
3 ответа

vertex

Vertex, а в чем проблема-то? Уж точно не в сообщениях.


vertex

"c.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
У Вас и не должно быть этого файла.А не рано на DX прыгать то? Судя по ошибкам в коде - ой как рано!
#include <windows.h>
 
 LRESULT CALLBACK MainWinProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
 {
 switch(msg)
 {
    case WM_DESTROY:
        PostQuitMessage(0);
        return(0);
        break;
    default://Всё таки может так, а?
         return(DefWindowProc(hwnd,msg,wparam,lparam));
 }
 
 }
 
 int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR lpcmdline,int ncmdshow)
 {
 WNDCLASSEX win;
 HWND hwnd;
 MSG msg;
 win.cbSize = sizeof(WNDCLASSEX);
 win.style = CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
 win.lpfnWndProc = MainWinProc;
 win.cbClsExtra = 0;
 win.cbWndExtra = 0;
 win.hInstance = hinstance;
 win.hIcon = LoadIcon(NULL,IDI_APPLICATION);//В иконки, наверное, нужно пихать иконки, а не курсоры
 win.hCursor = LoadCursor(NULL,IDC_ARROW);
 win.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
 win.lpszMenuName = NULL;
 win.lpszClassName = L"WINDOWSCLASS";
 win.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
 
 if(!RegisterClassEx(&win))//А класс окна кто будет регистрировать?
     return 0;
 
 if(!(hwnd = CreateWindowEx(NULL,L"WINDOWSCLASS" ,L"Базовое окно для DirectX",WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0,500,400,NULL,NULL,hinstance,NULL)))
    return (0);
 
 ShowWindow(hwnd,SW_SHOW);
 UpdateWindow(hwnd);
 
 while(GetMessage(&msg,NULL,0,0))
 {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 return(msg.wParam);
 }
 //Из всего увиденного вывод только один - РАНО ИСПОЛЬЗОВАТЬ DIRECTX


vertex

Все равнно выводит тоже самое!Бесполезно(