ページ 11

LoadGraphについて

Posted: 2014年2月06日(木) 16:56
by ABC
掲示板始めて使用させていただきます。プログラムも初心者程度です。
簡単なキャラ選択画面を作りたいのですが,

CharaGraph[].GHandle はキャラのグラフィックハンドル

CharaMaster.GetImage() はCharaMaster.cppにある キャラ画像名を取得する関数

//キャラクタステータス構造体
typedef struct {
char Name[256]; //名前
char Image[256]; //画像名
}status;
status HM[MAX];

char CCharaMaster::GetImage( int Num ){
return HM[Num].Image[256];

コード:


CharaGraph[i].GHandle = LoadGraph(  CharaMaster.GetImage( i ) );

↑のコードで実行すると
「 1 番目の引数を 'char' から 'const TCHAR *' に変換できません。」というようなエラーが出てしまいます。
どうにかできないでしょうか。お願いします。

Re: LoadGraphについて

Posted: 2014年2月06日(木) 17:00
by FUNK
LoadGraphの引数には文字列を渡さないといけませんが、
CCharaMaster::GetImageの戻り値はcharになっています。

Re: LoadGraphについて

Posted: 2014年2月06日(木) 17:08
by ABC
返信ありがとうございます。

char[]型からstring型に変換したうえで渡せば画像名として読み込んでくれるのでしょうか。

Re: LoadGraphについて

Posted: 2014年2月06日(木) 17:47
by N.R
char *CCharaMaster::GetImage( int Num ){
return HM[Num].Image;

としてみてください

Re: LoadGraphについて

Posted: 2014年2月06日(木) 18:01
by ABC
>char *CCharaMaster::GetImage( int Num ){
return HM[Num].Image;

で実行させていただいたのですが、

CharaGraph.GHandle = LoadGraph( CharaMaster.GetImage( i ) );
'char' から 'const TCHAR *' に変換できません。


char *CCharaMaster::GetImage( int Num ){

return HM[Num].Image;
}
オーバーロード関数は、'char CCharaMaster::GetImage(int)' と戻り値の型のみが異なります。
'char *(int)' は 'char (int)' と間接操作のレベルが異なります。
といったエラーが出てしまいす。

Re: LoadGraphについて

Posted: 2014年2月06日(木) 19:08
by N.R
宣言の方も変えましたか?
全ソース中の GetImage は一か所だけではないと思います

Re: LoadGraphについて

Posted: 2014年2月06日(木) 19:33
by softya(ソフト屋)
DXライブライの設定でマルチバイト文字を使うように設定するのが指示されているはずですが対応されていますでしょうか?
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html

Re: LoadGraphについて

Posted: 2014年2月06日(木) 19:39
by ABC
>宣言の方も変えましたか?
全ソース中の GetImage は一か所だけではないと思います

宣言にも変更は加えましたがさきの通りです。


>DXライブライの設定でマルチバイト文字を使うように設定するのが指示されているはずですが対応されていますでしょうか?

マルチバイト文字セットを使用するようにはなっていたようです。

Re: LoadGraphについて

Posted: 2014年2月06日(木) 20:06
by softya(ソフト屋)
> 'char' から 'const TCHAR *' に変換できません。
失礼しました。
char型からchar*型に変換できなというエラーですので
CharaMaster.GetImage( i )
でchar型で戻り値が設定されているんだと思います。

なので
>char *CCharaMaster::GetImage
に成っていない所があると思われます。