ページ 11

エラーが出ます。なぜでしょうか。

Posted: 2014年11月22日(土) 13:20
by rome
visual c++を使っています。

43行目でエラー
error C2664: 'DxLib::DrawString' : 3 番目の引数を 'int' から 'const TCHAR *' に変換できません。(新しい機能 ; ヘルプを参照)
1> 整数型からポインター型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。

が出るのですが、なぜですか。

コード:

#include "DxLib.h"
#include "iostream"


class unitdata{
public:
//	string name;
//	string type1;
//	string type2;
	int HP;
	int strengh;
	int magic;
};
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
         LPSTR lpCmdLine, int nCmdShow )
{
	unitdata lavalord;
	//lavalord.name = "lava lord";
	//lavalord.type1 = "fire";
	//lavalord.type2 = "none";
	//lavalord.HP = 120;
	//lavalord.strength = 12;
    lavalord.magic = 18;
    int Cr ;

    // ウインドウモードに変更
    ChangeWindowMode( TRUE ) ;

    if( DxLib_Init() == -1 )    // DXライブラリ初期化処理
    {
         return -1;    // エラーが起きたら直ちに終了
    }

    // 白色の値を取得
    Cr = GetColor( 255 , 255 , 255 ) ;

    // 文字列の描画
    //DrawString( 250 , 240 - 16 , lavalord.name , Cr );
	//DrawString( 250 , 240 - 40 , lavalord.type1 , Cr );
	//DrawString( 250 , 240 - 60 , lavalord.type2 , Cr );
	//DrawString( 250 , 240 - 80 , lavalord.HP , Cr );
	//DrawString( 250 , 240 - 100 , lavalord.strength , Cr );
	DrawString( 250 , 240 - 120, lavalord.magic , Cr );

    WaitKey() ;        // キーの入力待ち(『WaitKey』を使用)

    DxLib_End() ;        // DXライブラリ使用の終了処理

    return 0 ;        // ソフトの終了
}

Re: エラーが出ます。なぜでしょうか。

Posted: 2014年11月22日(土) 13:38
by softya(ソフト屋)
DrawStringは三番目の引数が文字列です。
http://homepage2.nifty.com/natupaji/DxL ... raph2.html
今の場合数値が引数として指定されているのでエラーに成っています。

【補足】
やりたい事次第ですが、DrawFormatStringを使うべきかと思います。
DrawFormatStringの書式はprintfとほぼ同じです。

Re: エラーが出ます。なぜでしょうか。

Posted: 2014年11月22日(土) 13:56
by rome
返信ありがとうございます。

DrawFormatStringを使ってみようかと思います。