ページ 1 / 1
読み込みで困ってます
Posted: 2009年12月23日(水) 12:13
by 菊麻呂
GrHandle[0] = LoadGraph( "test0.bmp" ) ;
GrHandle[1] = LoadGraph( "test1.bmp" ) ;
GrHandle[2] = LoadGraph( "test2.bmp" ) ;
GrHandle[3] = LoadGraph( "test3.bmp" ) ;
のように三つか四つくらいなら配列ハンドルに簡単にロードできるんですが
たとえばtest0.bmpからtest100.bmpまでファイルがあったとします
この場合、簡単に読み込める方法ってありますか?
DXライブラリについてです。
よろしくお願いします。
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:20
by たかぎ
for (int i = 0; i <= 100; i++)
{
std::ostrstream oss;
oss << "test" << i << ".bmp";
GrHandle = LoadGraph(oss.str().c_str());
}
でどうでしょう?
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:21
by 菊麻呂
ありがとうございます。
でもできればCにしてくれませんか?
C++はあまり詳しくないんで・・・
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:22
by たかぎ
> でもできればCにしてくれませんか?
> C++はあまり詳しくないんで・・・
DXライブラリはC++でなければコンパイルできませんよ。
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:28
by たかぎ
Cの流儀でいくなら...
for (i = 0; i <= 100; i++)
{
char s[sizeof("test100.bmp")];
sprintf(s, "test%d.bmp", i);
GrHandle = LoadGraph(s) ;
}
になります。
このまま使うなら問題ありませんが、加工するならsprintfの問題等には十分配慮してください。
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:29
by softya
ファイル名がシーケンシャルなら、forループで回しながらsprintfで名前を合成して読み込めますね。
char fname[100];
for( int i=0 ; i<=100 ; i++ ) {
sprintf( fname, "test%d.bmp", i );
GrHandle = LoadGraph( fname ) ;
}
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:29
by 菊麻呂
え、でも明らかに私はCで書いてますけど・・・
詳しくなくてすいません。
上の記述をそのまま貼り付ければ動くのかな?
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:31
by たかぎ
> え、でも明らかに私はCで書いてますけど・・・
もしかして、C#用のDLLを使っているとか?
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:32
by 菊麻呂
答えてくれた方々ありがとうございます。
一応これでやってみます。
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:33
by softya
>>菊麻呂さんへ
たかぎさんは、いじわるで書いている訳ではないですよ。
今度からC言語でお願いしますと書いて下さいね。
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:34
by 菊麻呂
>もしかして、C#用のDLLを使っているとか?
正直詳しいことはよくわかりませんが、
このサイトのようにC言語で打ち込んでいます。
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 12:54
by Dixq (管理人)
>> 菊麻呂さん
こんにちは。
C++っていうのはCのバージョンアップ版とでもいう感じのものなんですね。
C++のコンパイラでは(基本的に)C言語で書いたものも同じようにコンパイル出来ます。
ですから、同じプロジェクト内で
C++を使ったりCを使ったりすることが出来るわけです。
DXライブラリ自体はC++で出来ているのですが
「Cライクに使えるC++ライブラリ」という位置づけなので、
Cで書けるのです。
ですから、「C++を勉強したいけどすぐには・・」という場合は
C++のおいしい機能だけ勉強しながら徐々に自分のプログラムに混ぜて変えていくなんてこともできます^^
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 13:04
by 菊麻呂
DXライブラリ自体はC++でできていて
私の使ってるVC++2008EEのコンパイラもC++までコンパイルできる。
よってDXライブラリを使ってC++でもCでもソースは同様にかける。
こんな様に理解しました。
これでいいんですかね?
ありがとうございました。
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 13:10
by Dixq (管理人)
そう言うことですね。
ただ100枚もロードすると使用メモリ量がすごいことにならないでしょうか・・。
まぁ読み込む画像にもよりますが、マップチップ的な物なら
画像を一枚にして
http://homepage2.nifty.com/natupaji/DxL ... .html#R3N3
こういう関数を使った方がシンプルになりそうです。
Re:読み込みで困ってます
Posted: 2009年12月23日(水) 13:35
by たかぎ
CとC++は完全な互換性があるわけではありません。
自分が何というプログラミング言語を使っているかぐらいは正確に把握してください。