プログラミング初心者です。
WIN32APIの勉強を始めたばかりの状態です。
本を見ながら、ウィンドウを表示させるだけのプログラムを書いてみたのですが、エラーになってしまいます。
#include <windows.h>
//ウィンドウ・クラス名
#define MYWNDCLSNAME "MyWindowClass"
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInst,
HINSTANCE hPrevInst,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wndcls;
HWND hWnd;
MSG msg;
//ウィンドウ・クラスを登録
ZeroMemory(&wndcls, sizeof(wndcls));
wndcls.lpfnWndProc = WndProc;
wndcls.hInstance = hInst;
wndcls.hIcon = LoadIcon(0, IDI_APPLICATION);
wndcls.hCursor = LoadCursor(0, IDC_ARROW);
wndcls.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
wndcls.lpszClassName = MYWNDCLSNAME;
if(RegisterClass(&wndcls) == 0) return -1;
//メイン・ウィンドウを作成
hWnd = CreateWindow(MYWNDCLSNAME, "My Window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
0, 0, hInst, NULL);
if(hWnd == 0) return -2;
//ウィンドウの表示状態を指定する
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
//メッセージループ
while(GetMessage(&msg, 0, 0, 0)){
DispatchMessage(&msg);
}
//WM_QUITメッセージのwParamを終了コードにする
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg,
WPARAM wParam, LPARAM lParam)
{
switch(uMsg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
//自分で処理しないメッセージはWindowsに任せる
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
本を読み直しても原因がよくわかりません。
どこがいけないのかご指摘いただけるとうれしいです。お願いします。
エラーの内容は
error C2440: '=' : 'const char [14]' から 'LPCWSTR' に変換できません。
error C2664: 'CreateWindowExW' : 2 番目の引数を 'const char [14]' から 'LPCWSTR' に変換できません。
です。
No.4
- 回答日時:
こんにちは。
ついでに此れも。「GetMessage()API」
http://msdn.microsoft.com/ja-jp/library/cc364699 …
//メッセージループ
while(GetMessage(&msg, 0, 0, 0)){
DispatchMessage(&msg);
}
↓
//メッセージループ
while(::GetMessage(&msg, NULL, 0, 0) == TRUE)
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
No.3
- 回答日時:
#3の補足。
要するにWindowsのアプリはUnicode版とANSI版を作成することが出来るのです。
以下を参照
http://www.246.ne.jp/~y-ookubo/program/tips/unic …
No.2
- 回答日時:
> //ウィンドウ・クラス名
> #define MYWNDCLSNAME "MyWindowClass"
を
//ウィンドウ・クラス名
#define MYWNDCLSNAME TEXT("MyWindowClass")
と直す。
> //メイン・ウィンドウを作成
> hWnd = CreateWindow(MYWNDCLSNAME, "My Window",
を
//メイン・ウィンドウを作成
hWnd = CreateWindow(MYWNDCLSNAME, TEXT("My Window"),
と直す。
で良いと思います。
CreateWindow()の第1引数、第2引数は、LPCTSTR型ですよ。
後、使用している本と、質問兄さんが使用している開発環境のバージョンが違ったりするのがあるのかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
UWSCで特定のChromeのタブをア...
-
Excelの上下を固定したい
-
ゲームでは結局どっちが良いの?
-
CAsyncSocketのOnConnectがスレ...
-
VB6.0 モジュールウィンドウの移動
-
子孫ウィンドウのキャプション...
-
DellノートPC購入で悩んでいま...
-
検索の画面がでなくなってしま...
-
ExcelのBOOKが消えた!
-
MFC ダイアログ上のID取得につ...
-
パソコン関連)何度消してもま...
-
勝手にウィンドウが開いて止ま...
-
[VBA] UserForm を Excel の W...
-
MDI(自作メモ帳)の子ウィンドウ...
-
VBでタスクバーアイコンの数を...
-
エクセルで複数のウィンドウ枠...
-
名前を付けて保存のウィンドウ...
-
「&HFFFF」「&H1A」とは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
検索の画面がでなくなってしま...
-
勝手にウィンドウが開いて止ま...
-
ゲームでは結局どっちが良いの?
-
Excelの上下を固定したい
-
VBA .Value=.Value ?
-
作成したウインドウのサイズを...
-
Vba LongPtrについて教えてくだ...
-
ExcelのBOOKが消えた!
-
他のアプリケーションの終了処理
-
ラジオボタンの初期指定
-
「&HFFFF」「&H1A」とは?
-
親ウインドウにあるOKボタンを...
-
EnumChildWindowsの使い方(VBA)
-
[VBA] UserForm を Excel の W...
-
MFC ダイアログ上のID取得につ...
-
UWSCで特定のChromeのタブをア...
-
ボタンのハンドルウィンド取得...
-
ExcelVBAでAPIを使って外部ウイ...
おすすめ情報