ページ 11

ファイルの展開

Posted: 2009年8月30日(日) 20:33
by 水波形
こんにちは
今、簡易インストーラー的なものを作ろうと考えています。

以前リソースを追加/読み出すやり方をご教授いただき、
それを応用してみようかな・・・と使ってみたところ、
ファイルの重さが一定を超えると、なぜかエラーが返ってきます。
なので、ABのサンプルの本についていたdivide.dllの関数を借りて、
1MBずつに分割し、リソースとして追加してみたところ、うまくいきまし。

しかし、メモリーやCPUをものすごく使い、動作が遅くなってしまいます。
(しかも復元したらなぜかファイルが0KBとなってしまいますし・・・)

Lhaplusの、exe圧縮のような感じの物にしたいと思っているのですが、
どういう仕組みになっているのでしょうか。

ご存知の方がいらっしゃいましたら、知識をお貸しください

Posted: 2009年8月31日(月) 22:54
by konisi
「自己解凍書庫 仕組み」でググってみた所、実行ファイルの後ろにバイナリファイルをくっつけて保持するのが楽なようです。
http://oshiete1.goo.ne.jp/qa3579677.html
http://q.hatena.ne.jp/1168512848

かったるいので検証していませんが、エラーになるのはどのくらいのサイズからか分かりますか?
あと書く時と読む時のどちらでエラーになりますか?

#4GB以上のファイルを埋め込もうとしても無理。

Re:ファイルの展開

Posted: 2009年8月31日(月) 23:28
by 水波形
返信ありがとうございます。
実行ファイルの後ろにバイナリファイルをくっつけて
ですが、リソースとして埋め込むのでしょうか?
エラーになるのはどのくらいのサイズからか分かりますか?
あと書く時と読む時のどちらでエラーになりますか?
ですが、
大体400MBを越えたあたりから、書き込み時にエラーが出てきました。
理由は分かりません・・・

Posted: 2009年9月09日(水) 07:46
by konisi
文字通り実行ファイルにくっつける。リソースとは違う方法。

1.インストーラ兼ファイル展開ソフトを作る
2.展開するファイルを実行ファイルにくっつける
3.実行時にくっつけたファイルを読み込んでインストール先に出力する

コードにするとこんな感じかと。

Posted: 2009年9月13日(日) 23:11
by 水波形
返信送れて申し訳ありません。
しばらくサーバーに接続が出来なくて・・・・

それと、コードのサンプルありがとうございます!

チラッと見させていただきましたが、自分の知識が少ないので、
何をしているのかさっぱりです・・・
頑張って理解していきます。
ありがとうございました!