ページ 11

DrawString

Posted: 2007年3月12日(月) 01:48
by kuroca
初めまして、kurocaと申します。
よろしくお願いします。

入門編の6節のソースをコピペして実行してみたのですが、
描画される前にウィンドウが終了してしまいます。
デバッガで追ってみたのですが、どうもDrawString関数で
落ちてしまっているようです。

環境の問題かもしれませんが、何が起こっているか御存知の方がおりましたら
対処方法を教えていただけませんでしょうか。
実行環境は下記の通りです。

OS :WindowsXP Professional Ver.2002 SP2
CPU:Pentium4 3.00GHz
RAM:DDR1 1.0GB
GC :Radeon X1300 Series (VRAM 256MB)

コンパイルはBorlandC++ Compiler 5.5とBCC Developerを使用しています。
またDirectXのバージョンは9.0cです。
よろしくお願いします。

Re:DrawString

Posted: 2007年3月13日(火) 01:07
by kuroca
入門編の6節のソースは以下の通りです。

====================================================================================================

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了


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

DrawString( 0, 0, "hello! DX Library!" , White); //文字列表示
DrawString(100,100, "こんにちは! DXライブラリ!" , White);//文字列表示


WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}

====================================================================================================

最初のDrawString関数で、"Process Terminated"と表示されてしまいます。
ちなみにデバッガはTurboDebuggerを使用しています。

Re:DrawString

Posted: 2007年3月13日(火) 05:55
by Justy
 DXライブラリ内部の問題のようですのでこちらでは解答を得られにくいでしょう。

 http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?で訊いてみて下さい。



#プロジェクトファイルか実行ファイルと同じディレクトリに log.txtというファイルはないですか?
 もしあればそのファイルを開いてみて下さい。
 何か問題の原因となるような異常が書かれているかもしれません。

Re:DrawString

Posted: 2007年3月13日(火) 07:53
by バグ
大丈夫だとは思うのですが…BCC用のDxLibを使っているかどうかも確認しておいた方がいいかもしれません。

Re:DrawString

Posted: 2007年3月14日(水) 00:59
by kuroca
レスありがとうございます。

>Justyさま

アドバイスありがとうございます。
開発元の掲示板でも質問してみます。
また、御指摘の通り実行ファイルと同じディレクトリにAppLog.txtというファイルが生成されていました。
中身を確認した所、"GetGlyphOutline 関数が失敗しました"という記述がありました。
どうもこの処理が原因の様です。


>バグさま

はい、BCC用のDxLibを使用しています。
中身には手を加えていません。
プロジェクトと同じ階層の別フォルダに置いています。

Re:DrawString

Posted: 2007年3月20日(火) 02:57
by kuroca
DXライブラリの管理人様に御回答をいただき解決しましたので、ご報告まで書き込みます。

原因は私のOSが英語版であったことと、コードの中でフォントの指定をしていなかったことです。
OSの初期設定フォントが日本語を解さないフォントであった為、フォント指定をしないで実行した
DrawStringが日本語を処理できずに終了してしまったようです。


対策としてはChangeFontやDrawStringなどの引数にフォントを指定してやる事。


それでもprintfDxでは画面が落ちてしまうようですが。
これはOSの設定フォントを変えた方が早いのかもしれません。

とりあえず解決しました。
皆様、ありがとうございました。

Re:DrawString

Posted: 2007年3月20日(火) 08:07
by 管理人
あらら、ご回答できていなくてすみません、、、といってもOSが英語であることが原因だとは推測できませんでしたが^^;
逆にこちらが勉強になりました。
わざわざ報告していただきありがとうございます。