DrawFormatStringToHandleについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
とんとん
記事: 33
登録日時: 3年前
連絡を取る:

DrawFormatStringToHandleについて

#1

投稿記事 by とんとん » 3年前

DrawFormatStringToHandleを使っているのですが、あるときにデバッグしたらいきなり表示されなくなってしまいました。

コード:

    SetDrawBlendMode( DX_BLENDMODE_ALPHA, alpha);
	DrawFormatStringToHandle( 20  , 100 ,color[0], font[3] , name[knd][num].c_str());
	SetDrawBlendMode(DX_BLENDMODE_NOBLEND,0);
このようなコードでした。alphaは300、font[3]も存在して、color[0]、name[knd][num]も存在します。
DrawFormatStringToHandleの部分をDrawGraphで画像を表示させてみたところきちんと表示できていました。
if文でDrawFormatStringToHandle返り値も見たのですが、0になっていました。この場合、どのようなことが原因なのでしょうか。
宜しくお願いします。

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

Re: DrawFormatStringToHandleについて

#2

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

情報が少なくてよくわからないですが、とりあえずDXライブラリのSetDrawBlendMode関数の第二引数として有効な値は0~255なので、
alphaが300というのは異常な値かもしれません。配列の範囲外へのアクセスなどによるメモリ破壊が起きていないかを確認してください。
とんとん さんが書きました:font[3]も存在して、color[0]、name[knd][num]も存在します。
単に存在するだけでなく、有効な値かを確認してください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

とんとん
記事: 33
登録日時: 3年前
連絡を取る:

Re: DrawFormatStringToHandleについて

#3

投稿記事 by とんとん » 3年前

alphaについては255を超えないようにしましたが、何もかわりませんでした。(DX_BLENDMODE_NOBLENDにしても表示されませんでした)
cororについてはDrawBoxで確認できたのですが、他の確かめ方が分かりません。
文字の表示に関する関数が使えないのですが、なにか方法は無いでしょうか。

とんとん
記事: 33
登録日時: 3年前
連絡を取る:

Re: DrawFormatStringToHandleについて

#4

投稿記事 by とんとん » 3年前

理由が判明しました。有効かどうかというところから調べたら、ロードしている間にフォントデータをデリートしてしまっていました。
コードを書いているときに順番に不都合があってロードに関するところをいじったときに順番が入れ替わったようです。
フォントに関する部分のみ入れ替えたら元に戻りました。有効かどうかという言葉で思い出せました。
ありがとうございました。

閉鎖

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