Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない

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

Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない

#1

投稿記事 by kaz » 13年前

DxLibを使っているのですがRelease構成にしてフォルダをデスクトップにコピーしてもjpgが表示されません。

最初EXEファイルと画像ファイルだけをデスクトップにコピーして実行したらbmpは表示されるのですが、jpgは表示できませんでした。
その後Releaseフォルダ全部をデスクトップにコピーしましたがやはり表示されません。
どうしたら表示できますか?

アバター
ぱにしん
記事: 58
登録日時: 14年前
住所: 滋賀

Re: Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない

#2

投稿記事 by ぱにしん » 13年前

そうですね、画像を読み込まれている部分があると思いますが、その部分を出して頂ければ分かると思うのですが・・・

その二つの画像ファイル、もともと違う階層に入っていませんか?
releaseフォルダの中に画像が入っているとは考えにくいので、とりあえずプロジェクトファイルがあるフォルダにexeファイルを入れてみてください。
その構成で正常に動くようならば、その構成で他のフォルダにコピーされれば問題なく動くと思いますよ。

kaz

Re: Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない

#3

投稿記事 by kaz » 13年前

このようなクラスを作って使っているですが…
どこがまずいのでしょうか?

コード:



#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;
}


beatle
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

Re: Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない

#4

投稿記事 by beatle » 13年前

ポイントはCpicture::load関数にどんな文字列を渡しているかですね。
exeファイルと同じディレクトリに画像ファイルがあるなら、"hoge.jpg"を渡せばいいし、exeファイルと同じディレクトリにあるimagesという名のディレクトリに画像ファイルがあるなら、"images\hoge.jpg"を渡せばいいでしょうね。
Visual C++上から実行した場合とexeファイルをダブルクリックして実行した場合で、カレントディレクトリが変わるのがクセモノですよね。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: Release構成にしてフォルダをデスクトップにコピーしてもjpgが表示されない

#5

投稿記事 by softya(ソフト屋) » 13年前

マルチポストですので、フォーラムルールに則って相互リンクをお願いします。
詳しくはフォーラムルールをご覧ください。 http://dixq.net/board/board.html
「DxLibを使っているのですがjpgが表示されない - C・C++ - 教えて!goo」
http://oshiete.goo.ne.jp/qa/7419607.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

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