忍者ブログ

銀朱工房

クッソ初心者がダンジョンRPGを作成する パソコンって何ですかって人が頑張ってダンジョンRPGを作ったローという感じ クソゲーが出来上がる過程を報告って感じですね やった内容は右のカテゴリーから参照お願いいたします。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

またコケタ(window表示にて)その2

クラス登録とか確認したけどあってるっぽ

デバックコードぶっこんでみっか
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

またコケタ(window表示にて)

ウインドウを表示させてみたんだが・・・
\(;゚∇゚)/ あかんかったんやぁー

とりあえずコードと実行結果
----------------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;
 
  if ( !RegisterClass( &winclass ) ) {
    MessageBox( NULL, TEXT("トゥルットゥルットゥル"), NULL, MB_OK );
    return 0;
  }

  hWnd = CreateWindow( WIN_NAME, TEXT("testtest"),
                        WS_OVERLAPPEDWINDOW,
                        100, 100, 400, 300,
                        NULL, NULL, hInstance, NULL );
 
  if( hWnd == NULL ) {
    MessageBox( NULL, TEXT("トットットゥルットゥルットゥル"), NULL, MB_OK );
    return 0;
  }
 
  ShowWindow( hWnd, SW_SHOW );
 
  MessageBox( NULL, TEXT("めでたしめてたし"), NULL, MB_OK );

  return 0;
}
-----------------------------------------------------------
実行結果


"トットットゥルットゥルットゥル"~♪
って何でジャー 
(`Д´) ムキー!

「(ーヘー;)え~と...
設定とかあってるしーワケワカンネー

次回につづく

拍手[0回]

Windowを表示する

やっとこさWindowを作ってみる

ウインドウ表示の流れとしては以下のようになります。
ウインドウクラスの登録

ウインドウクラスの生成

ウインドウの作成

ウインドウの表示

メデタシめでたし

もうちょっと詳細
ウインドウクラスを登録
typedef struct _WNDCLASS {
    UINT     style;          //ウィンドウのスタイル
    WNDPROC lpfnWndProc;    //ウィンドウプロシージャ
    int     cbClsExtra;     //補助メモリ
    int     cbWndExtra;     //補助メモリ
    HANDLE  hInstance;      //インスタンスハンドル
    HICON   hIcon;          //アイコン
    HCURSOR hCursor;        //カーソル
    HBRUSH  hbrBackground;  //背景ブラシ
    LPCTSTR lpszMenuName;   //メニュー名
    LPCTSTR lpszClassName;  //クラス名
} WNDCLASS;
設定したら

RegisterClass()関数にポインタを渡す
ATOM RegisterClass( CONST WNDCLASS *1pwc ); ここでウインドウクラスの作成

ウインドウの生成
HWND CreateWindow(
    LPCSTR lpClassName,LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,int y,int nWidth,int nHeight,
    HWND hWndParent,HMENU hMenu,
    HANDLE hInstance,LPVOID lpParam
);

ウインドウの表示
BOOL ShowWindow( HWND hwnd, int nCmdShow );

めでたしめでたし


拍手[0回]

プロフィール

HN:
ンメローン
性別:
男性
職業:
なんちゃってソフト屋さん
趣味:
いろいろある多趣味である
自己紹介:
寝るのが大好きなキモオタです。
しいていうなら、
ただの通りすがりのメロンみたいなものですよ

カレンダー

08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

ブログ内検索

フリーエリア

最新CM

[08/30 imitazione cartier anelli oro donna]
[02/17 kos3xnqd9v3]
[02/16 uem4paid3j2]

バーコード

コガネモチ

P R

ページ