Win32 MessageBoxについて(C++)
Posted: 2012年5月14日(月) 20:38
初めて掲示板利用します。
C++の質問掲示板が見当たらなかったのでこちらに書き込みました。
DirectX11 でゲームを開発しようとは思っているのですが、DirextX11 sample Browser のサンプルコードの中のオブジェクトのビット数を外に関数を作って調べられないかどうかでつまづいています。
つまり、1度作ったらコピペで応用できるようにしたいなと思っています。
MessageBoxを使って調べようとしてるのですが、うまく作動してくれません。
OS: windows 7;
コンパイラ(?):VC++2010 Express
文字コード: Unicode
できればdirectX11 sampleがUnicodeで書かれているので、文字コードを変えずに教えて頂けると嬉しいです。
C++の質問掲示板が見当たらなかったのでこちらに書き込みました。
DirectX11 でゲームを開発しようとは思っているのですが、DirextX11 sample Browser のサンプルコードの中のオブジェクトのビット数を外に関数を作って調べられないかどうかでつまづいています。
つまり、1度作ったらコピペで応用できるようにしたいなと思っています。
MessageBoxを使って調べようとしてるのですが、うまく作動してくれません。
OS: windows 7;
コンパイラ(?):VC++2010 Express
文字コード: Unicode
できればdirectX11 sampleがUnicodeで書かれているので、文字コードを変えずに教えて頂けると嬉しいです。
#include <windows.h>
#include <string.h>
#include <iostream>
#include <tchar.h>
LPCWSTR tptchar(int* x)
{
char * str = new char[*x / 10];
TCHAR * tchar = new TCHAR[ *x /10];
memset(tchar,'\0' , sizeof(tchar));
_itoa(*x, str, 10);
MultiByteToWideChar(CP_OEMCP,MB_PRECOMPOSED,str,strlen(str),tchar,(sizeof tchar)/2);
return (LPCWSTR) *tchar;
}
int WINAPI WinMain(
HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
LPSTR lpCmdLine ,
int nCmdShow )
{
int a = 10;
MessageBox(NULL, tptchar(&a) , TEXT("world!"), MB_OK);
}
//メッセージボックスはでましたが、tptcharで求めたはずの"10"が表示されません。どうしてでしょうか?(質問1)
//tptchar()とWinMainの順番を逆にすると
//次のエラーが出ます。(デバックが正常終了します)
//MessageBox(NULL,tptchar(&a),...の行で'tptchar': 識別子が見つかりませんでした
//どうしてでしょうか?(質問2)
//
//#includeは同上
int WINAPI WinMain(
HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
LPSTR lpCmdLine ,
int nCmdShow )
{
void func();
}
void func()
{
MessageBox(NULL,TEXT("hello") ,TEXT("world!"), MB_OK);
}
//コンパイルは通るのですが、メッセージボックスが表示されません。
//もしかして、メッセージボックスはWinMain関数上に書かなければならないのでしょうか?(質問3)
//DirectX11 sample browser sample 05 のwWinMain関数の後のHRESULT InitDevice()の{}の中にMwssageboxを
//書いたところ正常に動いたのですが…
//その他アドバイスがあればよろしくお願いします。
//