はじめまして。
今野と申します。
Dxライブラリを導入しているところですが、最初から躓いてしましました。
皆様、よろしく、ご教授願います。
症状:
画像char.pngをサンプルプログラム実行用フォルダに保存して、以下のプログラム実行
#include "DxLib.h"
char st1[/url]="画像の保存場所が違うか、ファイル名が違うため、表示できません。";
char st2[/url]="正常に認識されています。";
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() == -1 ) return -1;
if(LoadGraphScreen( 0 , 0 , "char.PNG" , TRUE ) == -1)
DrawString(50,220,st1,GetColor(255,255,255));
else
DrawString(50,220,st2,GetColor(255,255,255));
WaitKey() ;
DxLib_End() ;
return 0 ;
}
"画像の保存場所が違うか、ファイル名が違うため、表示できません。"が表示。
直線や円などは自由に表示できます。
なお、実行用フォルダパスは以下になります。
C:\Documents and Settings\********\My Documents\Visual Studio 2008\DxLib_VC\サンプルプログラム実行用フォルダ
使用環境
PC:Vaio VGN-T71B
OS:XP
Compiler:Visual C++ 2008 Express Edition
導入してますがサンプル画像表示せず。
Re:導入してますがサンプル画像表示せず。
>画像char.pngをサンプルプログラム実行用フォルダに保存して、以下のプログラム実行
>
>if(LoadGraphScreen( 0 , 0 , "char.PNG" , TRUE ) == -1)
pngの文字サイズをそろえてみるとかどうでしょうか。
char.PNGとchar.pngの違いで認識されなかったりするかもです。
>
>if(LoadGraphScreen( 0 , 0 , "char.PNG" , TRUE ) == -1)
pngの文字サイズをそろえてみるとかどうでしょうか。
char.PNGとchar.pngの違いで認識されなかったりするかもです。
Re:導入してますがサンプル画像表示せず。
このプログラムを実行するとどうなりますか?
もし「~は存在しません」と表示されたのなら、表示されたパスに画像がありますか?
[color=#d0d0ff" face="monospace" >
#include "DxLib.h"
#include <shlwapi.h>
#include <string>
#pragma comment(lib, "shlwapi.lib")
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1) return -1;
char currDir[MAX_PATH];
GetCurrentDirectoryA(MAX_PATH, currDir);
std::string s(currDir);
s += "\\char.PNG";
if(::PathFileExistsA(s.c_str()))
s += "は存在します";
else
s += "は存在しません";
::MessageBoxA(GetMainWindowHandle(), s.c_str(), "Info", MB_OK);
DxLib_End();
return 0;
}
[/color]
もし「~は存在しません」と表示されたのなら、表示されたパスに画像がありますか?
[color=#d0d0ff" face="monospace" >
#include "DxLib.h"
#include <shlwapi.h>
#include <string>
#pragma comment(lib, "shlwapi.lib")
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1) return -1;
char currDir[MAX_PATH];
GetCurrentDirectoryA(MAX_PATH, currDir);
std::string s(currDir);
s += "\\char.PNG";
if(::PathFileExistsA(s.c_str()))
s += "は存在します";
else
s += "は存在しません";
::MessageBoxA(GetMainWindowHandle(), s.c_str(), "Info", MB_OK);
DxLib_End();
return 0;
}
[/color]
Re:導入してますがサンプル画像表示せず。
こめかみさん、Justyさんへ
ご指導ありがとうございます。
まず、以下の事を行いました
(1)拡張子"PNG"の小文字"png"への変更→状況変わらず。
(2)Jusyさんのプログラム実行
C:\Documents and Setting\Konno\My Documents\VisualStadio2008\Projects\test_dx\Char.PNGは存在しません。
というメッセージが出た。
Char.PNGがあるDxLib_VCフォルダは「VisualStadio2008」フォルダの中にあり「test_dx」の中には入れていませんでした。
よってChar.PNGのファイルだけコピーし、test_dxフォルダに入れたら正常動作しました。
画像ファイルはそれを使うプロジェクトのフォルダに入れないといけないのでしょうか?
Konno
ご指導ありがとうございます。
まず、以下の事を行いました
(1)拡張子"PNG"の小文字"png"への変更→状況変わらず。
(2)Jusyさんのプログラム実行
C:\Documents and Setting\Konno\My Documents\VisualStadio2008\Projects\test_dx\Char.PNGは存在しません。
というメッセージが出た。
Char.PNGがあるDxLib_VCフォルダは「VisualStadio2008」フォルダの中にあり「test_dx」の中には入れていませんでした。
よってChar.PNGのファイルだけコピーし、test_dxフォルダに入れたら正常動作しました。
画像ファイルはそれを使うプロジェクトのフォルダに入れないといけないのでしょうか?
Konno
Re:導入してますがサンプル画像表示せず。
>画像ファイルはそれを使うプロジェクトのフォルダに入れないといけないのでしょうか?
使うプロジェクトのフォルダに入れる、というかアプリから読むときに相対パスで
ただ "xxx.png"と指定したのなら、カレントディレクトリにそのファイルがなければなりません。
カレントディレクトリは直接 exeをダブルクリックすればその exeのあるディレクトリが
カレントディレクトリとなりますが、特に何の設定もしていない状態で
VisualStudioのデバッガから実行したのであれば vcprojファイルのあるディレクトリが
基準となりますので、そのディレクトリからアクセスできる状態でなければなりません。
デバッガから実行した時のカレントディレクトリを変更するにはプロジェクトのプロパティから
「構成プロパティ -> デバッグ」の「作業ディレクトリ」でパスを指定すると
起動したときに自動的にそのパスをカレントディレクトリにして起動してくれますので
この機能を使って直接 "DxLib_VCフォルダ"を指定してしまってもいいかもしれません。
Re:導入してますがサンプル画像表示せず。
Justyさん
アドバスありがとうございました。
初歩的な質問だったのかもしれませんね。
ご丁寧にありがとうございました。
これから学習していきます。
Konno
アドバスありがとうございました。
初歩的な質問だったのかもしれませんね。
ご丁寧にありがとうございました。
これから学習していきます。
Konno