DxLibを使っているのですがRelease構成にしてフォルダをデスクトップにコピーしてもjpgが表示されません。
最初EXEファイルと画像ファイルだけをデスクトップにコピーして実行したらbmpは表示されるのですが、jpgは表示できませんでした。
その後Releaseフォルダ全部をデスクトップにコピーしましたがやはり表示されません。
どうしたら表示できますか?
Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない
Re: Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない
そうですね、画像を読み込まれている部分があると思いますが、その部分を出して頂ければ分かると思うのですが・・・
その二つの画像ファイル、もともと違う階層に入っていませんか?
releaseフォルダの中に画像が入っているとは考えにくいので、とりあえずプロジェクトファイルがあるフォルダにexeファイルを入れてみてください。
その構成で正常に動くようならば、その構成で他のフォルダにコピーされれば問題なく動くと思いますよ。
その二つの画像ファイル、もともと違う階層に入っていませんか?
releaseフォルダの中に画像が入っているとは考えにくいので、とりあえずプロジェクトファイルがあるフォルダにexeファイルを入れてみてください。
その構成で正常に動くようならば、その構成で他のフォルダにコピーされれば問題なく動くと思いますよ。
Re: Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない
このようなクラスを作って使っているですが…
どこがまずいのでしょうか?
どこがまずいのでしょうか?
#pragma once
class Cpicture{
public:
Cpicture(void);
Cpicture(char* filename);
~Cpicture(void);
bool load(char* filenme);
bool loaded(void);
bool clear(void);
void draw(int pos_x , int pos_y);
void draw(C_2d_vector pos);
void center_draw(int pos_x , int pos_y);
void center_draw(C_2d_vector pos);
void GetSize(int* Xbuf , int* Ybuf);
private:
int picsize_x;
int picsize_y;
int gh;
};
Cpicture::Cpicture(void){
gh=-1;
}
Cpicture::Cpicture(char* filename){
gh=LoadGraph(filename);
if(gh==-1) return;
GetGraphSize(gh,&picsize_x,&picsize_y);
return;
}
Cpicture::~Cpicture(){
DeleteGraph(gh);
return;
}
bool Cpicture::load(char* filename){
if(gh!=-1) DeleteGraph(gh);
gh=LoadGraph(filename);
if(gh==-1) return false;
GetGraphSize(gh,&picsize_x,&picsize_y);
return true;
}
bool Cpicture::loaded(void){
if(gh==-1) return false;
return true;
}
bool Cpicture::clear(void){
if(DeleteGraph(gh)==-1) return false;
gh=-1;
return true;
}
void Cpicture::draw(int pos_x,int pos_y){
DrawGraph( pos_x , pos_y , gh , TRUE);
return;
}
void Cpicture::draw(C_2d_vector pos){
DrawGraph( (int)pos.x , (int)pos.y , gh , TRUE);
return;
}
void Cpicture::center_draw(int pos_x,int pos_y){
DrawGraph( (int)pos_x-(picsize_x/2),(int)pos_y-(picsize_y/2),gh,TRUE);
}
void Cpicture::center_draw(C_2d_vector pos){
DrawGraph( (int)pos.x-(picsize_x/2),(int)pos.y-(picsize_y/2),gh,TRUE);
return;
}
void Cpicture::GetSize(int *Xbuf, int *Ybuf){
*Xbuf=picsize_x;
*Ybuf=picsize_y;
return;
}
Re: Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない
ポイントはCpicture::load関数にどんな文字列を渡しているかですね。
exeファイルと同じディレクトリに画像ファイルがあるなら、"hoge.jpg"を渡せばいいし、exeファイルと同じディレクトリにあるimagesという名のディレクトリに画像ファイルがあるなら、"images\hoge.jpg"を渡せばいいでしょうね。
Visual C++上から実行した場合とexeファイルをダブルクリックして実行した場合で、カレントディレクトリが変わるのがクセモノですよね。
exeファイルと同じディレクトリに画像ファイルがあるなら、"hoge.jpg"を渡せばいいし、exeファイルと同じディレクトリにあるimagesという名のディレクトリに画像ファイルがあるなら、"images\hoge.jpg"を渡せばいいでしょうね。
Visual C++上から実行した場合とexeファイルをダブルクリックして実行した場合で、カレントディレクトリが変わるのがクセモノですよね。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない
マルチポストですので、フォーラムルールに則って相互リンクをお願いします。
詳しくはフォーラムルールをご覧ください。 http://dixq.net/board/board.html
「DxLibを使っているのですがjpgが表示されない - C・C++ - 教えて!goo」
http://oshiete.goo.ne.jp/qa/7419607.html
詳しくはフォーラムルールをご覧ください。 http://dixq.net/board/board.html
「DxLibを使っているのですがjpgが表示されない - C・C++ - 教えて!goo」
http://oshiete.goo.ne.jp/qa/7419607.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。