トップページ > 過去ログ > 記事閲覧
アーカイブについて
名前:jay 日時: 2010/07/28 01:12

初めまして、jayと申します。 早速ですが、DXライブラリのアーカイブに関して困っているので助けていただきたいのです。 DXライブラリを使ってゲームを作った、まではいいのですが 公開するために素材をDxaEncodeを使ってアーカイブしたのですが、プログラムを実行しても中のデータを正常に読み込んでくれません。 画像等のデータの読み込みや描画もDXライブラリの関数を使っています。 アーカイブする前のただのフォルダの状態だとちゃんと読み込んでくれるのでファイルの参照場所の指定はあっているハズなのですが・・・。 (その状態だとプログラムも正常に動作します) dxaの状態だと全く読み込んでくれません。 何が原因なのでしょうか、何か解決策は無いでしょうか? よろしくお願いします。

Page: 1 |

Re: アーカイブについて ( No.1 )
名前:Will 日時:2010/07/28 09:51

SetUseDXArchiveFlag(TRUE)にして、アーカイブ読み込みを有効にしましたか?
Re: アーカイブについて ( No.2 )
名前:jay 日時:2010/07/28 15:35

>Willさん はい、有効にしています。 ついでにSetDXArchiveExtensionなどの関数で余計な事をしている訳でもありません。 何か他に原因となり得る事柄はなでしょうか?
Re: アーカイブについて ( No.3 )
名前:Will 日時:2010/07/28 16:05

アーカイブするときにパスワードを設定しているということも無いんですよね? アーカイブしたファイルをDxaDecode.exeで解凍したとき、そのフォルダ構成はアーカイブ前のフォルダ状態と一致していますか? 一階層深くなったりしていませんか? 「アーカイブファイルの作成方法と使用方法」の通り作業されているのであれば間違いは無いとは思いますが念のため。
Re: アーカイブについて ( No.4 )
名前:jay 日時:2010/07/28 16:21

はい、パスワードなんて設定していません。 言われた通り一度解凍してみましたが、圧縮前と同じ構造になっています。 もしや、参照場所を指定するときには ”dat/img...” という形ではなく "dat.dxa/img..." といったようにアーカイブされたファイルにも拡張子をつける必要があるのでしょうか?
Re: アーカイブについて ( No.5 )
名前:Will 日時:2010/07/28 16:54

そういうことは無いですね。 Ver.3.03でテストプログラムを組んでみましたが、問題ないのでDXライブラリ側の問題ということはなさそうです。 dat.dxaは、datフォルダと同じ階層にありますよね? アーカイブしたファイルを提供してもらえるのであればこちらでも確認してみますが。
Re: アーカイブについて ( No.6 )
名前:jay 日時:2010/07/28 17:43

dat.dxaとdatフォルダは同じ階層にあります(中身の構造は同じです) しかしdatフォルダの中身はちゃんと読み込んでくれるのに、dat.dxaの中身は読み込んでくれません・・・。 つまり、僕のプログラムに何らかの不備があるのですね。 アーカイブファイルを渡そうにも、大きすぎてメールにも添付できません・・・。
Re: アーカイブについて ( No.7 )
名前:Will 日時:2010/07/28 17:57

例えば、今のプログラムではなくアーカイブファイルからロードするだけのテストプログラムを作って確認されてみてはどうでしょうか。 テストプログラムで問題なくロードできるなら、アーカイブの仕方や配置、ロードの仕方には問題ないことが確認できるので、問題の切り分けができますよ。
Re: アーカイブについて ( No.8 )
名前:jay 日時:2010/07/28 21:53

テストプログラムでは、アーカイブファイルも正常に読み込んでくれました。 やはり今のプログラムのどこかに不備(または余計なモノ)があるのでしょうか? テストプログラムとは別に以前作ったプログラムでも正常に読み込んでくれましたし、僕のやり方が悪いのでしょうか・・・。 自分でも色々試してみますが、何か解決策になりそうなことがあれば教えてほしいです。
Re: アーカイブについて ( No.9 )
名前:Will 日時:2010/07/29 10:01

私が思いつくところは全て出しましたので、これ以上は正常に読み込めないというプログラムを動かせる環境を貰わないとどうしようもないですね。
Re: アーカイブについて ( No.10 )
名前:Will 日時:2010/07/29 10:13

C言語何でも掲示板でも質問されているようですが、あそこは規約でマルチポストをする場合しかるべき手順を踏まなければなりません。 こことあそこは回答者がかぶっていることもあるので規約を守らずにマルチポストしていると回答つきませんよ。
Re: アーカイブについて ( No.11 )
名前:jay 日時:2010/07/30 16:25

自分でも色々試してみましたが、どうにも解決しないので他の方法を使うことにします。 Willさんお世話になりました、ありがとうございます。
Re: アーカイブについて ( No.12 )
名前:いっち 日時:2010/07/30 18:51

いまさらですが、DXアーカイブまわりのバグの可能性があるので、できればあきらめないで下さい。 私が思いつくのマルチバイト問題ぐらいですが、アーカイブするファイルのパスやファイル名に全角文字を使用していますでしょうか? 可能であれば、問題の発生するアーカイブファイルを公開して頂きたいです。 (アップローダを利用すれば多少大きいファイルでも問題ないと思います) 公開が差し支えるようであれば、管理人さんにメールで直接ご連絡差し上げるのが宜しいのではないかと思います。
Re: アーカイブについて ( No.13 )
名前:PATOLE 日時:2010/07/31 13:07

この可能性はないですか? そのプログラムの中のどこかに、 SetDXArchiveExtension 関数がないですか? この関数で、アーカイブの読み込むべき拡張子が変わっていませんか?
Re: アーカイブについて ( No.14 )
名前:Will 日時:2010/07/31 19:45

No.2でしていないって答えていますよ。
Re: アーカイブについて ( No.15 )
名前:jay 日時:2010/08/01 11:55

うーん、よく分かりませんが 色々試しているうちに正常に読み込めるようになりました。 結局原因は分からずじまいですけどね。 おそらくとしか言いようがないですが プログラムにコンパイルしているDXライブラリのバージョンとdxaファイルを作ったDXライブラリのバージョンが合っていなかったことが原因(?) 原因は他にあるのかもしれませんし僕の勘違いかもしれませんが、今となっては自分で確認する術もないですけどね。 とにかく、お騒がせしました。 そして親切に教えて下さったWillさん本当にありがとうございました。
Re: アーカイブについて ( No.16 )
名前:いっち 日時:2010/08/01 20:38

たしかに DxLib の Ver3.02e から Ver3.03 へのバージョンアップ時に DXArchive が更新されているようです。 DXライブラリの更新履歴に明確な記述は見当たりませんが互換性が無いのかも知れません(未確認)。
Re: アーカイブについて ( No.17 )
名前:管理人 日時:2010/08/03 09:18

DXアーカイブファイルにはバージョン番号が記録されていて、DXライブラリが対応しているバージョンより新しいバージョンの DXアーカイブファイルは無条件で扱えないようになっていますので、jayさんのお察しの通りコンパイルに使用しているDXライブラリの バージョンと dxa ファイルを作成したDXライブラリのバージョンが異なっていたのかもしれません ( 新しいバージョンのDXライブラリで古いバージョンで作成されたDXアーカイブファイルを扱うことはできますので、  もしこちらのパターンで読み込むことができない場合はDXライブラリのバグということになります )

Page: 1 |