トップページ > 過去ログ > 記事閲覧
GetMousePointのサンプルについて
名前:takk 日時: 2007/12/27 19:07

ttp://homepage2.nifty.com/natupaji/DxLib/dxfunc.html#R5N6のサンプルを、そのまま実行したのにビルドエラーが出ました 最近はじめたばかりでどこがおかしいのかわからないのですが、どこを直せばいいのでしょうか? ------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------ コンパイルしています... test.cpp c:\list\file\c++\pro\test\test.cpp(33) : error C2664: 'lstrcpyW' : 1 番目の引数を 'char [128]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 c:\list\file\c++\pro\test\test.cpp(35) : error C2664: 'lstrcatW' : 1 番目の引数を 'char [128]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 c:\list\file\c++\pro\test\test.cpp(36) : error C2664: 'lstrcatW' : 1 番目の引数を 'char [128]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 c:\list\file\c++\pro\test\test.cpp(38) : error C2664: 'lstrcatW' : 1 番目の引数を 'char [128]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 ビルドログは "file://c:\list\file\c++\pro\test\Debug\BuildLog.htm" に保存されました。 test - エラー 4、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

Page: 1 |

Re: GetMousePointのサンプルについて ( No.1 )
名前:TNT 日時:2007/12/27 20:04

これも「なぞのwarning」と同じで、文字コードに関するトラブルです。 (参照:ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=680) 一応、プログラム内の変数型を一つ一つチェックしていくことでUnicodeに合わせることもできますが、 正直Unicodeを用いる利点が(今のところ)分からないので、次のような対応をお勧めします。 ・メニューバーの「プロジェクト→(プロジェクト名)のプロパティを開く ・構成プロパティの「文字セット」を「マルチ バイト文字セットを使用する」に変更する で、今度は恐らくitoa関数が使えないというエラーが出るかと思います。 (出なければ、以下は無視してかまいません) これに対しては、プログラムを一部書き換えてやる必要があります。 「表示する文字列を作成」の内部6行を sprintf(StrBuf, "座標 X:%4d Y:%4d", MouseX, MouseY); に置き換え、プログラムの先頭にはインクルードファイル #include <string.h> を記述、追加します。 これで多分実行できるようになると思います(warningは出ますが…) 参考:修正後のプログラム #include "DxLib.h" #include <string.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { char StrBuf[ 128 ] ; int MouseX , MouseY ; int StringCr , BoxCr ; if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } // マウスを表示状態にする SetMouseDispFlag( TRUE ) ; // 白色の値を取得 StringCr = GetColor( 255 , 255 , 255 ) ; // 黒の値を取得 BoxCr = GetColor( 0 , 0 , 0 ) ; // キーが押されるまでループ while( CheckHitKeyAll() == 0 ) { // マウスの位置を取得 GetMousePoint( &MouseX , &MouseY ) ; // 表示する文字列を作成 { sprintf(StrBuf, "座標 X:%4d Y:%4d", MouseX, MouseY); } // 画面左上の領域に黒い四角を描き前に描いてあった // 文字列を消す DrawBox( 0 , 0 , 200 , 32 , BoxCr , TRUE ) ; // 座標文字列を描く DrawString( 0 , 0 , StrBuf , StringCr ) ; // メッセージ処理 if( ProcessMessage() == -1 ) { break ; // エラーが起きたらループを抜ける } // 一定時間待つ WaitTimer( 100 ) ; } DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
Re: GetMousePointのサンプルについて ( No.2 )
名前:takk 日時:2007/12/27 22:07

無事ビルドすることができました ありがとうございます

Page: 1 |