クラス登録とか確認したけどあってるっぽ
デバックコードぶっこんでみっか
google大先生によると
GetLastError()関数を使えばいいということでしたので
さらに大先生のサイトからコードをパチリました。
ーーーーーSource codeーーーーー
#include <windows.h>
#define WIN_NAME TEXT("winwin")
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
HWND hWnd;
WNDCLASS winclass;
winclass.style = CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc = DefWindowProc;
winclass.cbClsExtra = 0;
winclass.cbWndExtra = 0;
winclass.hInstance = hInstance;
winclass.hIcon = NULL;
winclass.hCursor = NULL;
winclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winclass.lpszMenuName = WIN_NAME;
//(HBRUSH)color_BACKGROUND + 1;
if ( !RegisterClass( &winclass ) ) {
MessageBox( NULL, TEXT("トゥルットゥルットゥル"), NULL, MB_OK );
return 0;
}
LPVOID lpMsgBuf;
SetLastError(NO_ERROR); //エラー情報をクリアする
hWnd = CreateWindow( WIN_NAME, TEXT("testtest"),
WS_OVERLAPPEDWINDOW,
100, 100, 400, 300,
NULL, NULL, hInstance, NULL );
FormatMessage( //エラー表示文字列作成
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf, 0, NULL);
MessageBox(NULL, (const char*)lpMsgBuf, NULL, MB_OK); //メッセージ表示
LocalFree(lpMsgBuf);
if( hWnd == NULL ) {
MessageBox( NULL, TEXT("トットットゥルットゥルットゥル"), NULL, MB_OK );
return 0;
}
ShowWindow( hWnd, SW_SHOW );
MessageBox( NULL, TEXT("めでたしめてたし"), NULL, MB_OK );
return 0;
}
ーーーーーーーーーーーーーーーーーーーーーーーーー
実行結果
⇒
(」゚ロ゚)」(」゚ロ゚)」(」゚ロ゚)」なんとオオオオオッッッ!!!
っつーことは、CreateWindowの第一引数のclassnameがアヤシーぞ
うーんあってるな
まてよ・・・
WNDCLASSの最後のメンバなんか少なくね?
なんか名前入れるの2個あったのに一つしかねーよね
Σ(゚д゚;) ヌオォ!?
クラスネームないんすけど
winclass.lpszClassNameがないよねあきらかに
(ノ_-;)ハア…
直してコンパイルしてみるっす
つづく
[0回]
PR