
No.2ベストアンサー
- 回答日時:
私自身は使う側で実際のアプリ側開発を行っているわけではありませんが
圧縮・解凍用のアーカイバDLLは以前より統合アーカイバプロジェクト
として公開されています
http://www.madobe.net/archiver/main-j2.html
>解凍する時に、解凍したファイルのどれか一つを指定して実行
でもってそれらDLL使って自己解凍のメニュー作成画面も作成できます
一例ですが
http://www2.nsknet.or.jp/~micco/exp/sfxsample.htm
にある SFXの設定例 等を見てください
作成された実行モジュールは指定したように動作します
koi1234さん、再び回答頂きましてありがとうございました。
WinSFX32がやりたいことを実現しているソフトです!
アーカイバDLLを用いて、これと同じものが作成できるか、もう少し調査してみます。
ありがとうございました。
No.5
- 回答日時:
>一つに固めるファイル群は、実行時に指定します。
よく理解できていないかもしれませんが
例えば自分が作成したa.exeを実行した場合、別のb.exeをくっつけ、
もう一度a.exe実行時に、b.exeを解凍→実行
ということでしょうか?
最も簡単な方法はa.exe(自分自身)の後ろにバイナリをくっつける方法だと思います。
(確かexe自身の書き換えは可能だったと思います。)
問題は後ろにくっついたファイルのサイズと、ファイルがくっついたかどうかを判定する仕組みがあればよいですね。
例えば、a.exe(自分自身)の後ろから30バイトを読み取り「ABCDEFGHIJ0000000100______b.exe」であればABCDEFGHIJ
でファイルがくっついていることを確認し100バイトを切り出して(解凍して)、b.exeを実行すれば良いんだな
といったようなフォーマットを定義してはどうでしょうか。
sha-girlさん、回答有り難うございました。
sha-girlさんの案を簡単に実現できるライブラリがあれば使ってみたいのですが、
自分で考えて実装するとなると、躊躇してしまいます。
ただ、このあたりを勉強すると、今後使えそうですので、ちょっと勉強してみます。
No.4
- 回答日時:
人様への反応になってしまいますが
>この場合にも、リソースファイルは使用できるでしょうか?
無理だと思いますよ
リソース使ってという話はそのアプリ作成前に確定してないといけませんので
リソースファイルはVCのコンパイル・リンク時に使われます
まともに自分でexe作成したいなら以下情報などが参考になるかもしれません
(正直自前でやるようなもんじゃないです)
http://codezine.jp/article/detail/419
※ 全てちゃんと見るには(無料ですが)登録しないといけないようです (私未登録なので全て見れてません)
実際まとめるのがどのぐらいのファイル数・サイズなのか分かりませんが
圧縮などしないのであれば超巨大なexeファイルになってしまうかもしれません
(そんなものまともに動くんだろうか って不安もあります)
>アーカイバDLLを用いて、これと同じものが作成できるか
質問者さんの場合イメージとしてはそれらDLL使っている
アプリケーションを作成することになります
(例えば http://www.madobe.net/archiver/index.html にある対応アプリを作ることになります)
(分かってるかもしれませんが)
DLLの何かの関数呼べば#2に書いたような(WinSFX32)設定画面が出てくる
ってことではないので其処はお気をつけください
koi1234さん、回答有り難うございました。
リソースファイルは、やはりコンパイル時に確定していないといけないんですね。
もしかしたら行けるか!?と思ったのですが、ダメでしたね。。。
codezineの案は、やはりちょっと難しいですね。
ここまでやるなら、アーカイバDLLを使いたいと思います。
>DLLの何かの関数呼べば#2に書いたような(WinSFX32)設定画面が出てくる
>ってことではないので其処はお気をつけください
逆に画面を出したくないので、その点は良かったです。
No.3
- 回答日時:
自前でやる場合ですが、
Visual C++の場合、リソースファイルがありますよね。
(拡張子rcに記述されているものです)
あそこにファイルの種類を問わずバイナリが置けます。
ですのでそこにexeなり、batなりを放り込み、
ファイルに展開後、WinAPIのCreateProcessなりWinExecを
実行すれば良いだけです。
生データではなく圧縮/解凍もしたいのであれば、事前にデータを圧縮しておきファイル展開時に解凍すれば良いです。
圧縮/解凍の方法ですが、
例えばzlib等はVisualC++用のプロジェクトファイル(lib作成用)も公開されているので使いやすいと思います。
sha-girlさん、回答ありがとうございました。
説明に書き忘れてしまいましたが、一つに固めるファイル群は、
実行時に指定します。
この場合にも、リソースファイルは使用できるでしょうか?
再び質問してしまい、申し訳ありませんがご回答下さい。
よろしくお願いします。
No.1
- 回答日時:
実行モジュールのファイル名が重複するとまともに動きませんが
lzh圧縮などで自動解凍のexeモジュール作れば可能ですが
全て自前でやるというのが前提ですか?
lzhでできるのは間違いないですがzipでも出来たかな・・・・忘れた
(lzh/zipと表現してるのは途中の圧縮ファイル形式で自己解凍にすると最終的にはexeとなります)
↑でいいのであればわざわざ自分で作る必要すらありません
(肝心のexeやbatファイルは別)
koi1234さん、回答ありがとうございます。
>全て自前でやるというのが前提ですか?
圧縮する部分は既存の圧縮ソフトなどを使ってもOKです。
(ただし、圧縮機能を自作ソフトに組み込めなくてはなりません)
複数のファイルを自己解凍形式で圧縮すれば、一つのexeファイルに
出来ることは知っていたのですが、自己解凍形式のファイルを
解凍する時に、解凍したファイルのどれか一つを指定して実行
できるのでしょうか?
再び質問して申し訳ありませんが、回答いただければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- WordPress(ワードプレス) [BuddyPress]試したいのですが! 3 2022/06/01 13:36
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- その他(セキュリティ) exeファイルの個人情報について 3 2023/06/29 17:36
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- アプリ アプリケーションが見つかりません 2 2022/07/13 21:07
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- その他(IT・Webサービス) エクセルの実行ファイルについての質問です。 1 2023/05/04 03:58
- Windows 10 Windows11の実行モジュールはどこにある 1 2022/05/31 07:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
c/c++ ビルドしたにもかかわら...
-
OLE又はDDEを使うVISUAL BESIC...
-
VBAで他のプログラムが起動して...
-
VBAでMP3を鳴らしたい
-
コマンドプロンプトで外のexeや...
-
VBAで他のプログラムを動かす
-
ネットワーク越しのEXEファ...
-
複数のJarファイルにクラスパス...
-
JAVA .jarファイルに再圧縮する...
-
Visual Basic6.0ランタイムにつ...
-
ヘルプの起動について
-
実行ファイルと実行モジュール...
-
eclipse exeファイル作成 エラ...
-
Winでコマンドプロンプトを出さ...
-
VBからhtaファイルを開くには?
-
WScript.Echo と msgbox
-
64bit環境で32bitのodbc参照
-
バッチファイルからエクエルの...
-
プログラム初心者です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
JavaScriptでコマンドプ...
-
OLE又はDDEを使うVISUAL BESIC...
-
c/c++ ビルドしたにもかかわら...
-
VBAでEXEファイルを動かす方法...
-
コマンドプロンプトで外のexeや...
-
VC++から引数付きexeファイルの...
-
コンポーネント`MSCOMM32.cox'...
-
VBAで他のプログラムが起動して...
-
JARファイルをEclipseを使って...
-
ローカルのHTMLからexeファイル...
-
JAVA .jarファイルに再圧縮する...
-
以下のように複数のファイルを...
-
実行ファイルと実行モジュール...
-
64bit環境で32bitのodbc参照
-
LINK : fatal error LNK1104に...
-
VB6.0で作ったプロジェクトが起...
-
jarの開き方を教えてください。
-
ネットワーク越しのEXEファ...
-
eclipseで作ったプログラムを他...
おすすめ情報