LoadGraphに関する質問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
秋辻

LoadGraphに関する質問

#1

投稿記事 by 秋辻 » 11年前

新・C言語~ゲームプログラミングの館に記載してあったサンプルプログラムを改変しましたところ、上手く動作しなくなりました、原因が全く解らなかったので、どなたかご教授をお願いいたします。

・ソース
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode( TRUE ); // ウィンドウモードに設定
DxLib_Init(); // DXライブラリ初期化処理

int Handle,teshand; // データハンドル格納用変数
Handle = LoadGraph("画像/キャラクタ00.bmp"); // 画像をロード
teshand= LoadGraph("画像/キャラクタ00.png");
int Color=GetColor(255,255,255);
DrawGraph( 50, 100, Handle,FALSE); // データハンドルを使って画像を描画
DrawGraph(100,100,teshand,FALSE);
DrawFormatString(0,0,Color,"Handle=%d teshand=%d",Handle,teshand);
WaitKey(); // キー入力があるまで待機
DxLib_End(); // DXライブラリ終了処理
return 0;
}

ファイル構造は、新・C言語~ゲームプログラミングの館からダウンロードできるプロジェクトをそのまま使用しているので、割愛いたします。

・Log.txt
1:システムの情報を出力します
2: DXライブラリ Ver3.05
3: 論理プロセッサの数 : 4
5: OS Windows7 ( Build 7601 Service Pack 1 )
107: CPU動作速度:大体2.29GHz
108: MMX命令を使用します
109: SSE命令が使用可能です
109: SSE2命令が使用可能です
110: CPUベンダ:GenuineIntel
113: CPU名: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz
116:COMの初期化... 成功しました
124:メモリ総量:3493.23MB 空きメモリ領域:1056.54MB
124:タイマーの精度を検査します
125:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
126: パフォーマンスカウンターを使用します タイマー精度 : 2238.925000 KHz
127: ソフトの二重起動検査... 二重起動はされていませんでした
129:ウインドウクラスを登録します... 登録に成功しました
131:フルスクリーンモード用のウインドウを作成します
133:ウインドウの作成に成功しました
138:カーソルを不可視にしました
139:IMEを無効にしました
140:DirectInput関係初期化処理
141: DirectInput7 の取得中... 成功
351: 引き続き初期化処理... 初期化成功
352: ジョイパッドの初期化...
353: ジョイパッドの初期化は正常に終了しました
354: マウスデバイスの初期化... 初期化成功
356: キーボードデバイスの初期化... 初期化成功
358:DirectInput 関連の初期化は正常に終了しました
360:DirectSound の初期化を行います
361:DirectSound インターフェースの取得を行います.... 成功
421:引き続きインターフェースの初期化処理... 成功
754: DirectSound デバイスを列挙します
899: モジュール名: ドライバ記述:プライマリ サウンド ドライバー
900: モジュール名:{0.0.0.00000000}.{8f7a1d12-feb0-49f1-a08b-fea46a466256} ドライバ記述:スピーカー (Conexant 20672 SmartAudio HD)
901: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz
901: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB

902: 利用可能サンプリング精度
902: プライマリ 16bit = OK 8bit = OK
903: セカンダリ 16bit = OK 8bit = OK

904: 利用可能チャンネル
905: プライマリ MONO = OK STEREO = OK
905: セカンダリ MONO = OK STEREO = OK

906:DirectSound の初期化は正常に終了しました
919:DirectDraw オブジェクトの取得を行います.... 成功
984:引き続き初期化処理... 初期化に成功しました
1064:IDirect3D9Ex オブジェクトを取得します.... 成功
4078:Desktop Window Manager を無効にしました
4079:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
6000:成功
6000:Driver:igdumdx32.dll Description:Intel(R) HD Graphics Family
6001:画面のフォーマットは D3DFMT_R5G6B5 です
6002:Zバッファのフォーマットは D3DFMT_D16 です
6003:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
6003:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
6004:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
6005:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
6005:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
6006:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
6007:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
6007:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
6008:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
6009:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
6010:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
6011:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です
6011:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
6012:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
6013:最大テクスチャサイズ 幅:8192 高さ:8192
6013:テクスチャステージテンポラリレジスタ:使用可
6014:減算合成のハードウェア対応:ネイティブ
6015:頂点シェーダーバージョンコード:300
6015:ピクセルシェーダーバージョンコード:300
6077:バックバッファロック転送の時間:15990nsec 一時的な描画可能バッファを使用した転送の時間:860nsec
6078:バックバッファロックを使用しません
6078:Zバッファを作成します.... 成功
6111:プログラマブルシェーダーを使用します

6337:フォントの初期化を行います
6348:フォントの初期化は正常に終了しました
6349:文字コードバッファの初期化を行います... 完了しました
26735:Direct3DDevice9 の解放 3
26842:Direct3D9 DLL の解放 4
26844:DirectInput 関連の終了処理... 完了
26844:DirectInput関係初期化処理
26845: DirectInput7 の取得中... 成功
26846: 引き続き初期化処理... 初期化成功
26848: ジョイパッドの初期化...
26849: ジョイパッドの初期化は正常に終了しました
26850: マウスデバイスの初期化... 初期化成功
26851: キーボードデバイスの初期化... 初期化成功
26853:DirectInput 関連の初期化は正常に終了しました
26857:DirectDraw オブジェクトの取得を行います.... 成功
26858:引き続き初期化処理... 初期化に成功しました
26910:IDirect3D9Ex オブジェクトを取得します.... 成功
27258:Desktop Window Manager を無効にしました
27264:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
29132:成功
29133:Driver:igdumdx32.dll Description:Intel(R) HD Graphics Family
29134:画面のフォーマットは D3DFMT_R5G6B5 です
29135:Zバッファのフォーマットは D3DFMT_D16 です
29136:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
29137:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
29138:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
29139:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
29139:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
29140:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
29141:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
29141:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
29142:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
29142:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
29143:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
29144:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です
29145:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
29146:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
29147:最大テクスチャサイズ 幅:8192 高さ:8192
29148:テクスチャステージテンポラリレジスタ:使用可
29148:減算合成のハードウェア対応:ネイティブ
29149:頂点シェーダーバージョンコード:300
29150:ピクセルシェーダーバージョンコード:300
29212:バックバッファロック転送の時間:15686nsec 一時的な描画可能バッファを使用した転送の時間:854nsec
29213:バックバッファロックを使用しません
29214:Zバッファを作成します.... 成功
29227:プログラマブルシェーダーを使用します

29394:グラフィックを復帰します
30242:フォントの初期化を行います
30246:フォントの初期化は正常に終了しました
30248:Direct3DDevice9 の解放 3
31521:Direct3D9 DLL の解放 4
31528:DirectInput 関連の終了処理... 完了
31663:DirectSound の終了処理は正常に終了しました
31710:ウインドウを閉じようとしています
31751:ウインドウが破棄されようとしています
31754:ソフトを終了する準備が整いました
31786:
31789:Alloc memory dump
31791: Total size:0(0.000kb) Alloc num:0
31792:

・実行結果
int Handleが-1
int teshandがグラフィックハンドルを返し、キャラクタ00.pngのみが表示されます。

ファイル名や、ファイルパスなどありがちなミスはしていないことを確認しています。また実行そのものは出来ますので、構文にミスがあるわけではないと思うのですが・・・
どなたか、心当たりを教えて下さい。

Rittai_3D
記事: 525
登録日時: 12年前

Re: LoadGraphに関する質問

#2

投稿記事 by Rittai_3D » 11年前

コードはコードタグで括っていただけると読みやすくて助かります。フォーラムルールをお読みください。
秋辻 さんが書きました:新・C言語~ゲームプログラミングの館に記載してあったサンプルプログラムを改変しましたところ、上手く動作しなくなりました、原因が全く解らなかったので、どなたかご教授をお願いいたします。

・ソース

コード:

#include "DxLib.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode( TRUE ); // ウィンドウモードに設定
        DxLib_Init();   // DXライブラリ初期化処理

        int Handle,teshand;     // データハンドル格納用変数
        Handle = LoadGraph("画像/キャラクタ00.bmp"); // 画像をロード
		teshand= LoadGraph("画像/キャラクタ00.png");
		int Color=GetColor(255,255,255);
		DrawGraph( 50, 100, Handle,FALSE); // データハンドルを使って画像を描画
		DrawGraph(100,100,teshand,FALSE);
		DrawFormatString(0,0,Color,"Handle=%d   teshand=%d",Handle,teshand);
		WaitKey();     // キー入力があるまで待機
        DxLib_End();   // DXライブラリ終了処理
        return 0;
} 
ファイル構造は、新・C言語~ゲームプログラミングの館からダウンロードできるプロジェクトをそのまま使用しているので、割愛いたします。

・Log.txt

コード:

1:システムの情報を出力します
2:	DXライブラリ Ver3.05
3:	論理プロセッサの数 : 4
5:	OS  Windows7 ( Build 7601 Service Pack 1 )
107:	CPU動作速度:大体2.29GHz
108:	MMX命令を使用します
109:	SSE命令が使用可能です
109:	SSE2命令が使用可能です
110:	CPUベンダ:GenuineIntel
113:	CPU名:       Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz
116:COMの初期化... 成功しました
124:メモリ総量:3493.23MB  空きメモリ領域:1056.54MB 
124:タイマーの精度を検査します
125:精度結果 更新回数 マルチメディアタイマー:0  パフォーマンスカウンター:60
126: パフォーマンスカウンターを使用します タイマー精度 : 2238.925000 KHz 
127: ソフトの二重起動検査... 二重起動はされていませんでした
129:ウインドウクラスを登録します... 登録に成功しました
131:フルスクリーンモード用のウインドウを作成します
133:ウインドウの作成に成功しました
138:カーソルを不可視にしました
139:IMEを無効にしました
140:DirectInput関係初期化処理
141:	DirectInput7 の取得中... 成功
351:		引き続き初期化処理... 初期化成功
352:	ジョイパッドの初期化... 
353:	ジョイパッドの初期化は正常に終了しました
354:	マウスデバイスの初期化... 初期化成功
356:	キーボードデバイスの初期化... 初期化成功
358:DirectInput 関連の初期化は正常に終了しました
360:DirectSound の初期化を行います
361:DirectSound インターフェースの取得を行います....  成功
421:引き続きインターフェースの初期化処理...  成功
754:	DirectSound デバイスを列挙します
899:		モジュール名:                 ドライバ記述:プライマリ サウンド ドライバー 
900:		モジュール名:{0.0.0.00000000}.{8f7a1d12-feb0-49f1-a08b-fea46a466256}  ドライバ記述:スピーカー (Conexant 20672 SmartAudio HD) 
901:	最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 
901:	総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 

902:	利用可能サンプリング精度
902:	 プライマリ 16bit = OK  8bit = OK 
903:	 セカンダリ 16bit = OK  8bit = OK 

904:	利用可能チャンネル
905:	 プライマリ MONO = OK  STEREO = OK 
905:	 セカンダリ MONO = OK  STEREO = OK 

906:DirectSound の初期化は正常に終了しました
919:DirectDraw オブジェクトの取得を行います....  成功
984:引き続き初期化処理... 初期化に成功しました
1064:IDirect3D9Ex オブジェクトを取得します.... 成功
4078:Desktop Window Manager を無効にしました
4079:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
6000:成功
6000:Driver:igdumdx32.dll  Description:Intel(R) HD Graphics Family
6001:画面のフォーマットは D3DFMT_R5G6B5 です
6002:Zバッファのフォーマットは D3DFMT_D16 です
6003:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
6003:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
6004:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
6005:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
6005:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
6006:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
6007:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
6007:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
6008:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
6009:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
6010:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
6011:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です
6011:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
6012:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
6013:最大テクスチャサイズ 幅:8192 高さ:8192
6013:テクスチャステージテンポラリレジスタ:使用可
6014:減算合成のハードウェア対応:ネイティブ
6015:頂点シェーダーバージョンコード:300
6015:ピクセルシェーダーバージョンコード:300
6077:バックバッファロック転送の時間:15990nsec  一時的な描画可能バッファを使用した転送の時間:860nsec
6078:バックバッファロックを使用しません
6078:Zバッファを作成します.... 成功
6111:プログラマブルシェーダーを使用します

6337:フォントの初期化を行います
6348:フォントの初期化は正常に終了しました
6349:文字コードバッファの初期化を行います... 完了しました
26735:Direct3DDevice9 の解放 3
26842:Direct3D9 DLL の解放 4
26844:DirectInput 関連の終了処理... 完了
26844:DirectInput関係初期化処理
26845:	DirectInput7 の取得中... 成功
26846:		引き続き初期化処理... 初期化成功
26848:	ジョイパッドの初期化... 
26849:	ジョイパッドの初期化は正常に終了しました
26850:	マウスデバイスの初期化... 初期化成功
26851:	キーボードデバイスの初期化... 初期化成功
26853:DirectInput 関連の初期化は正常に終了しました
26857:DirectDraw オブジェクトの取得を行います....  成功
26858:引き続き初期化処理... 初期化に成功しました
26910:IDirect3D9Ex オブジェクトを取得します.... 成功
27258:Desktop Window Manager を無効にしました
27264:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
29132:成功
29133:Driver:igdumdx32.dll  Description:Intel(R) HD Graphics Family
29134:画面のフォーマットは D3DFMT_R5G6B5 です
29135:Zバッファのフォーマットは D3DFMT_D16 です
29136:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
29137:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
29138:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
29139:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
29139:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
29140:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
29141:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
29141:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
29142:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
29142:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
29143:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
29144:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です
29145:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
29146:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
29147:最大テクスチャサイズ 幅:8192 高さ:8192
29148:テクスチャステージテンポラリレジスタ:使用可
29148:減算合成のハードウェア対応:ネイティブ
29149:頂点シェーダーバージョンコード:300
29150:ピクセルシェーダーバージョンコード:300
29212:バックバッファロック転送の時間:15686nsec  一時的な描画可能バッファを使用した転送の時間:854nsec
29213:バックバッファロックを使用しません
29214:Zバッファを作成します.... 成功
29227:プログラマブルシェーダーを使用します

29394:グラフィックを復帰します
30242:フォントの初期化を行います
30246:フォントの初期化は正常に終了しました
30248:Direct3DDevice9 の解放 3
31521:Direct3D9 DLL の解放 4
31528:DirectInput 関連の終了処理... 完了
31663:DirectSound の終了処理は正常に終了しました
31710:ウインドウを閉じようとしています
31751:ウインドウが破棄されようとしています
31754:ソフトを終了する準備が整いました
31786:
31789:Alloc memory dump
31791:	Total size:0(0.000kb)  Alloc num:0
31792:
・実行結果
int Handleが-1
int teshandがグラフィックハンドルを返し、キャラクタ00.pngのみが表示されます。

ファイル名や、ファイルパスなどありがちなミスはしていないことを確認しています。また実行そのものは出来ますので、構文にミスがあるわけではないと思うのですが・・・
どなたか、心当たりを教えて下さい。
さて、エラーの件ですが、ファイルハンドルが-1ということは指定された場所に画像が無いということです。http://homepage2.nifty.com/natupaji/DxL ... .html#R3N2LoadGraphのリファレンスです。
Handleの位置に間違いなくキャラクタ00.bmpがありますか?

#追記
Dxライブラリのバージョンが3.05とログにあるので、最新版にしてみたらどうでしょうか?
初心者です

閉鎖

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