CreateWindowEx 메서드는 항상 null을 반환합니다.CreateWindowEx가 null을 반환하면 : 창을 만들 수 없습니다.
뭐가 잘못 됐는지 모르겠지만 창을 만들 수 없습니다.
내 창 프로 시저가 다른 클래스에서 정의 된 정적 메서드 인 BaseWndApplication :: WndProc이므로 문제가 발생하는지 확실하지 않습니다. 내 WNDCLASSEX 구조체를 성공적으로 등록 할 수 있기 때문에 확실합니다.
안녕하세요!
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine ,
int nCmdShow
)
{
const char * WINDOW_CLASS_NAME = "D2DAppClass";
HRESULT hr;
{
// Register the window class.
WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = BaseWndApplication::WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hbrBackground = NULL;
wcex.lpszMenuName = NULL;
wcex.hCursor = LoadCursor(NULL, IDI_APPLICATION);
wcex.lpszClassName = WINDOW_CLASS_NAME;
if (!RegisterClassEx(&wcex))
return E_FAIL;
HWND m_hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,
WINDOW_CLASS_NAME,
"Direct2D Demo App",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
static_cast<UINT>(ceil(640.f)),
static_cast<UINT>(ceil(480.f)),
NULL,
NULL,
hInstance,
NULL
);
hr = m_hWnd ? S_OK : E_FAIL;
if (SUCCEEDED(hr))
{
ShowWindow(m_hWnd, SW_SHOWNORMAL);
UpdateWindow(m_hWnd);
}
}
return 0;
}
'GetLastError()가'그것에 대해 무슨 말을해야합니까? 일반적인 실패 원인은 [documentation] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms632680%28v=vs.85%29.aspx)를 참조하십시오. –
그것은 "작업 완료 successflly"라고 생각하는 오류 코드 0을 반환합니다. – revolutionary
static_cast (ceil (640.f))'의 목적은 무엇입니까? 왜 '640'이 아닌가? 스텁 WndProc과'ceil' 넌센스가없는 코드는 잘 작동합니다. –