DxLibで画像が描写されない。

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

DxLibで画像が描写されない。

#1

投稿記事 by huront » 7年前

MacのVIrtual box上でWindows 7を起動し、Visual Studio Community 2015 でプログラミングを行っています。

>Visual Studio Community 2015 を使用した場合のDXライブラリの使い方
http://dxlib.o.oo7.jp/use/dxuse_vscom2015.html

上記を参考にしてDXライブラリを導入しました。
テストとしてサイトに記載されている点を描写するプログラムを行うと、無事成功しました。
そこで今度は画像を描写しようと、LoadGraphScreen関数を使用したのですが、画像が描写されません。
コードのミスがないように、上記サイトの「点を描写するプログラム」をまずコピペして、LoadGraphScreen関数を書き込みました。
以下がコードです。

コード:

#include "DxLib.h"

// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	ChangeWindowMode(TRUE);
	if (DxLib_Init() == -1)		// DXライブラリ初期化処理
	{
		return -1;			// エラーが起きたら直ちに終了
	}

	LoadGraphScreen(50, 100, "C:\\Users\\ユーザー名\\Documents\\Visual Studio 2015\\Projects\\Gamepro\\image_00.png", TRUE);
	DrawPixel(320, 240, GetColor(255, 255, 255));	// 点を打つ
	

	WaitKey();				// キー入力待ち
	DxLib_End();				// DXライブラリ使用の終了処理
	return 0;				// ソフトの終了 
}
こうすると点は描写されるのですが、やはり画像は表示されません。
パスが間違ってるのかと思い絶対パスとして指定しましたがやはりダメで、エラーログを確認してもパスの間違いに関する記載はありませんでした。
以下がLog.txtの内容です。

[hr]
0:ChangeWindowMode実行
0:ウインドウモードフラグが立てられました
6:DXライブラリの初期化処理開始
11: システムの情報を出力します
12: DXライブラリ Ver3.16f
12: 論理プロセッサの数 : 1
13: OS Windows7 ( Build 7601 Service Pack 1 )
113: 現時点のCPU動作速度:大体2.66GHz
115: MMX命令を使用します
117: SSE命令が使用可能です
118: SSE2命令が使用可能です
119: CPUベンダ:GenuineIntel
123: CPU名: Intel(R) Core(TM) i5-3330S CPU @ 2.70GHz
124: COMの初期化... 成功しました
135: メモリ総量:1023.55MB 空きメモリ領域:218.32MB
135: タイマーの精度を検査します
136: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
137: パフォーマンスカウンターを使用します タイマー精度 : 2630.976000 KHz
138: ソフトの二重起動検査... 二重起動はされていませんでした
140: ウインドウクラスを登録します... 登録に成功しました
141: ウインドウモード起動用のウインドウを作成します
142: ディスプレイ情報のセットアップ開始
143: モニターの数:1 ディスプレイデバイスの数:4
143: No.0 モニター名:\\.\DISPLAY1 1920x1080 32bit 60Hz
145: ディスプレイ情報のセットアップ完了
151: ウインドウの作成に成功しました
152: ウインドウを表示します
387: IMEを無効にしました
387: ウインドウスタイルをウインドウモード用に変更します... 完了
429: DirectInput関係初期化処理
429: XInput DLL の読み込み中... 成功
458: DirectInput7 の取得中... DirectInput8 の取得を試みます...成功
507: 引き続き初期化処理... 初期化成功
528: ジョイパッドの初期化...
533: ジョイパッドの初期化は正常に終了しました
534: マウスデバイスの初期化... 初期化成功
534: キーボードデバイスの初期化... 初期化成功
539: DirectInput 関連の初期化は正常に終了しました
552: DirectSound の初期化を行います
552: DirectSound インターフェースの取得を行います.... 成功
571: 引き続きインターフェースの初期化処理... 成功
702: DirectSound デバイスを列挙します
702: Module Name : Description : プライマリ サウンド ドライバー
703: Module Name : {0.0.0.00000000}.{87ed4fcd-ba2d-409c-84c7-e122098efcb9} Description : スピーカー (High Definition Audio デバイス)
703: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz
703: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB

704: 利用可能サンプリング精度
704: Primary 16bit = OK 8bit = OK
704: Secondary 16bit = OK 8bit = OK

704: 利用可能チャンネル
705: Primary MONO = OK STEREO = OK
705: Secondary MONO = OK STEREO = OK

705: DirectSound の初期化は正常に終了しました
706: BEEP音用のサウンドバッファの作成に失敗しました
706: d3d11.dll の読み込み.... 成功
731: dxgi.dll の読み込み.... 成功
731: API CreateDXGIFactory1 のアドレスを取得します.... 成功
732: IDXGIFactory1 を作成します.... 成功
739: API D3D11CreateDevice のアドレスを取得します.... 成功
746: IDXGIAdapter を取得します.... 成功
747: Direct3D 11 FeatureLevel 11_0 以上を対象とします
748: ID3D11Device オブジェクトを取得します.... 失敗
749: d3d11.dll の解放 1
760: dxgi.dll の解放 1
762: Direct3D11 のオブジェクト数を出力
762: Direct3D11 のオブジェクト合計数 : 0
801: DirectDraw オブジェクトの取得を行います.... 成功
823: 引き続き初期化処理... 初期化に成功しました
851: IDirect3D9Ex オブジェクトを取得します.... 成功
1898: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
2170: 成功
2208: Driver:VBoxDispD3D-x86.dll Description:VirtualBox Graphics Adapter for Windows Vista and 7
2246: 画面のフォーマットは D3DFMT_X8R8G8B8 です
2247: 16bit Zバッファフォーマットは D3DFMT_D16 です
2248: 24bit Zバッファフォーマットは D3DFMT_D24X8 です
2248: 32bit Zバッファフォーマットは D3DFMT_D24X8 です
2249: 16bit カラーフォーマットは D3DFMT_R5G6B5 です
2250: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
2251: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です
2251: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
2253: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です
2253: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
2254: DXT1テクスチャフォーマットはD3DFMT_DXT1 です
2255: DXT2テクスチャフォーマットはD3DFMT_DXT2 です
2256: DXT3テクスチャフォーマットはD3DFMT_DXT3 です
2257: DXT4テクスチャフォーマットはD3DFMT_DXT4 です
2257: DXT5テクスチャフォーマットはD3DFMT_DXT5 です
2258: ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です
2259: ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です
2260: ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です
2261: 1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です
2261: 1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
2262: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です
2263: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です
2263: 2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です
2264: 2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
2265: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です
2266: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です
2266: 描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です
2267: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
2268: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
2269: 描画用 ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です
2270: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です
2271: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です
2273: 描画用1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です
2273: 描画用1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
2274: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です
2275: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です
2276: 描画用2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です
2276: 描画用2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
2277: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です
2278: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です
2279: 一度に描画できるプリミティブの最大数:1048575
2279: 対応している最大頂点インデックス:1048575
2280: 同時にレンダリングできるバッファの数:4
2280: 最大テクスチャサイズ 幅:16384 高さ:16384
2281: テクスチャステージテンポラリレジスタ:使用可
2281: 減算合成のハードウェア対応:ネイティブ
2282: ハードウェア頂点シェーダーバージョンコード:300
2283: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し
2283: ピクセルシェーダーバージョンコード:300
2310: バックバッファロック転送の時間:2498nsec 一時的な描画可能バッファを使用した転送の時間:3588nsec
2332: バックバッファロックを使用します
2334: Zバッファを作成します.... 成功
2378: プログラマブルシェーダーを使用します

2431: フォントの初期化を行います
2459: フォントの初期化は正常に終了しました
2507: 文字コードバッファの初期化を行います... 完了しました
2532:DXライブラリの初期化処理終了
320266:フォントの初期化を行います
320267:フォントの初期化は正常に終了しました
320269:Direct3DDevice9 の解放 2
320294:d3d9.dll の解放 1
320295:DirectInput 関連の終了処理... 完了
320363:DirectSound の終了処理は正常に終了しました
320368:ウインドウを閉じようとしています
320411:ウインドウが破棄されようとしています
320417:ソフトを終了する準備が整いました
320640:
320640:Alloc memory dump
320641: Total size:0(0.000kb) Alloc num:0
320641:
[hr]

なぜうまく画像が描写されないのでしょうか?
よろしくお願いします。

タンタル

Re: DxLibで画像が描写されない。

#2

投稿記事 by タンタル » 7年前

ちょっと自信がないですが...

なんとなく思い付いたのは
・相対パスで画像を指定するときに、画像を置く場所が間違っている。(確かソースファイルと同じフォルダに入れるはず)
・絶対パスで画像を指定するときに、「Visual Studio 2015」の部分で空白が入っているので、「Visual\ Studio\ 2015」にしないといけない。
とかですかね...

間違っていたらすみません...

huront
記事: 2
登録日時: 7年前

Re: DxLibで画像が描写されない。

#3

投稿記事 by huront » 7年前

ダメでした。。。
こうなってくると「仮想環境」では無理、という話になってくるんでしょうか。

inec0310
記事: 15
登録日時: 8年前
住所: 埼玉県

Re: DxLibで画像が描写されない。

#4

投稿記事 by inec0310 » 7年前

何とも言えませんがWin10上でWin7を仮想起動して動作させてみたのですが、画像も正常に描画されました
仮想環境では一応できるってことですかね?

Tepp
記事: 13
登録日時: 7年前
住所: フォッサマグナ
連絡を取る:

Re: DxLibで画像が描写されない。

#5

投稿記事 by Tepp » 7年前

LoadGraphScreen関数の戻り値はどうなっているのでしょうか?
エラーの場合、-1が返ってきます。

参照データはなにも設定していなければ、.projファイルがあるフォルダが作業フォルダになるので、
そこに画像を置けば、長いファイルパスを書かずに"image_00.png"で済みます。

画像自体に不安があれば、サンプルに付属する画像で試すと確実です。

閉鎖

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