トップページ > 過去ログ > 記事閲覧
実行画面が落ちてしまう
名前:kuroca 日時: 2007/03/14 01:14

初めまして、kurocaと申します。 C言語の質問掲示板で質問した所、こちらを紹介されてやって参りました。 よろしくお願いします。 DrawString関数で文字列を表示させるプログラムをビルドして実行してみたのですが、描画される前にウィンドウが終了してしまいます。 AppLog.txtファイルを参照した所、"GetGlyphOutline 関数が失敗しました"という記述がありました。 実行環境の問題かもしれませんが、どなたかこの問題を御存知の方がおりましたら教えていただけないでしょうか。 実行環境は下記の通りです。 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です。 どうぞよろしくお願いします。

Page: 1 |

Re: 実行画面が落ちてしまう ( No.1 )
名前:管理人 日時:2007/03/15 13:10

 kurocaさん始めまして、DXライブラリの管理人です。  不思議ですね・・・お使いのPCは日本で発売されている 一般的なPCでしょうか?  とりあえず、最新版のDXライブラリでは正常に描画出来る かもしれませんので、宜しければこちらをお試しになってみて下さい。 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe (中身を既存のライブラリのファイルに上書きして、『再構築』をして下さい)
Re: 実行画面が落ちてしまう ( No.2 )
名前:kuroca 日時:2007/03/16 01:52

管理人様、初めまして。よろしくお願いします。 アドバイスありがとうございます。 さっそくご紹介いただいたDXライブラリを使用してみましたが、結果は変わりませんでした。 やはりログテキストにGetGlyphOutline関数が失敗しました、とあります。 使用しているPCですが、SAPPHIREのマザーボードを使って自作しております。 一応パーツは全て日本で揃えたものですが・・・そういえば、OSは英語版を言語設定日本語にして使用していました。 あと特別なものと言えば、TVチューナーボードを挿している事くらいでしょうか。 何か常駐しているアプリと相性が悪いのか、とも疑っていたりします。
Re: 実行画面が落ちてしまう ( No.3 )
名前:管理人 日時:2007/03/16 02:06

 kuroca さんどうも、DXライブラリの管理人です。  うーんそうですか・・・  やっぱり気になるのは英語版のOSです。プログラム中で作成される デフォルトのフォントが日本語が処理できないフォントになっているかも しれませんので、DxLib_Init の後に ChangeFont( "MS ゴシック" ); と書いて実行してみて頂けないでしょうか?
Re: 実行画面が落ちてしまう ( No.4 )
名前:kuroka 日時:2007/03/17 00:49

仰る通りに実行した所、正常に動作しました。 ありがとうございました。 ついでに”14歳から始めるC++わくわくゲームプログラミング教室”の第四章のプログラムも同様に実行してみたのですが、こちらは依然として失敗しています。 ログを参照すると、やはりGetGlyphOutline関数が失敗していると出ています。 またデバッガで追ってみるとGetDrawStringWidthToHandle関数で落ちているようです。 やはりOSの言語が問題なのでしょうか。 大学で配布されていたOSを未だに使い続けていたのですが、こういう問題も起こってしまうんですね。難しい・・・。
Re: 実行画面が落ちてしまう ( No.5 )
名前:管理人 日時:2007/03/17 11:39

 kurokaさんどうも、DXライブラリの管理人です。  現在手元に『14歳から始めるC++わくわくゲームプログラミング教室』がないので プログラムは確認できませんが、そのプログラムの中で CreateFontToHandle という 関数が使用されていると思います。その関数の第一引数に使用するフォントの名前を 渡すのですが、宜しければそこに前回と同じ様に『MS ゴシック』という文字列を 渡してみて下さい。  Win32API のフォントハンドルAPIではフォント名を何も指定しないとOSの デフォルトのフォントが作成されるのですが、恐らく kurokaさんの環境では日本語が 処理できないフォントがデフォルトのフォントとして作成されてしまっているのだと思います。
Re: 実行画面が落ちてしまう ( No.6 )
名前:kuroka 日時:2007/03/18 02:55

管理人様、お世話になっております。 こちらもお教えいただいた通りにフォントをMSゴシックに設定した所、正常に動作しました。 本当にありがとうございました。 OSのデフォルトのフォントがどこで設定されているのか存じませんが、画面のプロパティから表示に使用されるフォントを調べてみた所、 『Tahoma』なる馴染みのないフォントを使用しておりました。 実は諸事情で手放したノートPCで作成した入門プログラムが今の環境でほとんど動かなかった為、 新しい環境を手に入れるまでダメなのかと思っている所でした。 これでまた時間を見つけてコツコツと手をつけられます。 ありがとうございました。
Re: 実行画面が落ちてしまう ( No.7 )
名前:kuroka 日時:2007/03/19 02:08

よろしければもう一つ教えていただけないでしょうか。 こちらは別の環境なのですが、同様に実行画面が描画前に落ちてしまいます。 AppLog.txtにはDirectDrawSurfaceを作成します、という行の次の行でZバッファの取得に失敗しましたとあります。 そこでDirectX診断ツールを実行してみると、DirectDrawアクセラレータは使用可能ですが、 Direct3DアクセラレータとAGPテクスチャアクセラレータは利用できませんとなっていました。 このような環境ではDXライブラリを使用して開発されたプログラムは実行できないのでしょうか? 一度解決した所に恐縮ですが、宜しくお願いします。
Re: 実行画面が落ちてしまう ( No.8 )
名前:wiz 日時:2007/03/19 12:34

2DのゲームならSetUse3DFlag関数でFALSEを 指定すれば作れそうですね。
Re: 実行画面が落ちてしまう ( No.9 )
名前:管理人 日時:2007/03/19 13:33

 kurokaさんどうも、DXライブラリの管理人です。  Direct3D が使えない環境でしたら、DxLib_Init の前に SetUseDirectDrawFlag( FALSE );  と記述した上で実行してみて下さい、Direct3D どころか DirectDraw の機能も使わないので、恐らく正常に動作すると 思います。(半透明処理や拡大処理などを行う場合 DirectDrawアクセラレータを使用した方が負荷が高いので、 DirectDrawアクセラレータを使用しないで、すべて自前の ソフトウエア処理を行った方が負荷が安定します)  ただ、SetUseDirectDrawFlag 関数自体は最近追加した関数 ですので、3/15の書き込みにある最新バージョンのライブラリファイル http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe (中身を既存のライブラリのファイルに上書きして、『再構築』をして下さい) を、お使い下さい。m(_ _)m (因みに最新版では SetUseDirectDrawFlag(FALSE);を使用して いなくても、Zバッファの作成に失敗した場合は自動的に SetUseDirectDrawFlag(FALSE); の状態で起動するようになっています)
Re: 実行画面が落ちてしまう ( No.10 )
名前:kuroka 日時:2007/03/20 02:29

wiz様、管理人様、レスありがとうございます。 お教えいただいた通り、最新バージョンのライブラリファイルを使用した所、正常に動作しました。 管理人様の最後の記述の通り、明示的にフラグをFALSEに指定しなくとも動作してくれました。 デスクトップとノートがそれぞれこういう癖のある環境達だった為、「う、動かないー!」と半泣きでした(笑) 本当にありがとうございました。

Page: 1 |