CHAR型をTCHAR *に変換できないというエラーと文字化け

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
だんごさん

CHAR型をTCHAR *に変換できないというエラーと文字化け

#1

投稿記事 by だんごさん » 13年前

今私は画像を表示させようとしています。(失敗した場合は「エラー」表示)
CharからTCHAR *に変換できないというエラーが出たのでTCHAR *に変換しました。エラーメッセージは消えたのですが、「エラー」という文字がTCHAR *に変換してもしなくても文字化けします。
↓のようなコードです。(TCHAR *には変換していない)

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode( TRUE ); // ウィンドウモードに設定
        DxLib_Init();   // DXライブラリ初期化処理
        int Handle;     // データハンドル格納用変数
        Handle = LoadGraph( "画像ファイル" ); // 画像をロード
        int a;
		a = DrawGraph( 50, 100, Handle, TRUE ); // データハンドルを使って画像を描画
		if(a == -1)DrawFormatString(0,0,GetColor(255,255,255),"エラー");
        WaitKey();     // キー入力があるまで待機
        DxLib_End();   // DXライブラリ終了処理
        return 0;
} 
エラーメッセージは"画像ファイル"と、"エラー"という部分についています。もちろん"画像ファイル"は指定ファイルが入ります。
→'DxLib::LoadGraph' : 1 番目の引数を 'const char [13]' から 'const TCHAR *' に変換できません。(新しい機能 ; ヘルプを参照)

文字化けについては実在しない言葉?なんで書けませんが、「エラー」を「あいうえお」に変えると
「・・・・・」になりました。

ちなみに私はC言語を始めて1か月くらいの素人です。

環境
OS: Windows7
コンパイラ名 :VC++ 2008EE

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: CHAR型をTCHAR *に変換できないというエラーと文字化け

#2

投稿記事 by みけCAT » 13年前

プロジェクトの設定でワイド文字を使用するようになっていませんか?
もしそうなら、マルチバイト文字を使用するようにしてください。

VC++を使用するとこのような設定が必要になりめんどくさいので、Dev-C++をおすすめします。
英語版:http://www.bloodshed.net/devcpp.html
日本語版:http://sourceforge.jp/projects/dev-cpp-jp/
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

だんごさん

Re: CHAR型をTCHAR *に変換できないというエラーと文字化け

#3

投稿記事 by だんごさん » 13年前

プロジェクト設定内をうろうろ探しましたら、Unicodeの文字セットになっていました。
無事、「エラー」表示が出てきました!
ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: CHAR型をTCHAR *に変換できないというエラーと文字化け

#4

投稿記事 by softya(ソフト屋) » 13年前

型だけキャストしても文字コードが違うので思った動作はしてくれないはずです。
プロジェクトの設定で文字セットがUNICODEに成っているのが原因ですのでマルチバイト文字に切り替えて下さい。

↓ 下記の説明に書かれているメニューにあります。
「今さら聞けない、教えてもらえない!! Unicode /マルチバイト文字対応 国際化VC ++ プログラミングの基礎!! - JAPAN Platform SDK(Windows SDK) Support Team Blog - Site Home - MSDN Blogs」
http://blogs.msdn.com/b/japan_platform_ ... de-vc.aspx
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る