みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

自作EXEから別EXEを作成・出力するには?

RPGツクールなどのツールでは、設定した内容に応じて、内容が変化したEXEファイルが作成されますよね?

それと同じような事を自作ツールでやりたいのですが、自作アプリからEXEファイルを作成するには、どのような手段があるのでしょうか?

自分では、調べたり考えても解決に至りませんので、ご存知の方はご教示お願いします。

使用言語は、それが実現できるなら何でも良いのですが、強いて挙げるなら
C、C++、VB、HSPあたりが希望です。

投稿日時 - 2012-07-12 19:55:31

QNo.7586735

困ってます

質問者が選んだベストアンサー

こんにちは。

No.1さんのリンクをたどると、最終的にはこちらのページが一番参考になるんでしょうね。

・プログラムからEXEファイルを生成してみよう (1/3):CodeZine
http://codezine.jp/article/detail/419

ちなみにこの連載のトップはこちらになります。

・Windows実行ファイル「EXE」の謎に迫る:CodeZine(コードジン)
http://codezine.jp/article/corner/61


で、自分ならどう作るか考えてみました。

まずツクール?の仕様を考えて、それをスクリプト的なもので動かすようにします。
次にスクリプトを解釈して実行するインタプリタエンジンを作ります。
スクリプトをバイナリ化(中間言語)してもいいかもしれません。
このバイナリとさらに画像やサウンドなどのデータを1つにまとめます。
インタプリタエンジン(exe)の後ろにまとめたデータを結合します(配布exe)。
まとめデータの末尾にデータサイズを入れるなりしておけば、配布exeのまとめデータの位置がわかります。

このexe結合については十分な検証はしていません。「たぶん動きます」という程度です。

「たぶん」がダメなら、、、
インタプリタエンジンのソースにダミーデータを入れてみて、ダミーデータのサイズによってexeの何が違うかを調べます。
これがわかれば、任意のサイズのデータを埋め込めるようなるでしょう。

投稿日時 - 2012-07-13 16:14:43

お礼

いろいろ詳しく教えていただき、ありがとうございます!
勉強になります!
自分の力不足を思い知りました。

中間言語って、スクリプトをバイナリ化するって意味だったんですか!?
その単語は耳にした事はありましたがもっと難しいイメージを持っていました。

ではまず、最初の目標は、
『スクリプトを解釈するインタプリタエンジンを作る』 → 『そのスクリプトを出力する設定ツールを作る』
というところですかね・・・

道のりが険しそうです。

でも、おかげさまで、なんとなくイメージがつかめました。
回答ありがとうございます!

投稿日時 - 2012-07-13 19:09:47

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

zwi

こういう奴ならパッケージ的に制限がないので利用できると思います。

「Clang - Wikipedia」
http://ja.wikipedia.org/wiki/Clang

投稿日時 - 2012-07-13 18:43:04

ANo.1

zwi

バイナリファイルを作れればどの言語でも可能です。
ただ、exeファイルの形式であるPEフォーマットの深い理解が必要です。
「EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine」
http://codezine.jp/article/detail/412

あるいはソースファイルを自動生成して配布可能なコンパイラ・リンカをバックグラウンドで動かしてexeファイルを作るという方法もあります。

投稿日時 - 2012-07-12 20:53:24

お礼

回答ありがとうございます!

正直、まともな回答は得られないんじゃないかと思っていましたので、とても嬉しいです!

そうか、exeファイルはPEフォーマットという構造なのですね、勉強になります!

>配布可能なコンパイラ・リンカをバックグラウンドで動かしてexeファイルを作る

というのは
『自作ツールの中にパックしておいて、ツールからexeファイル生成するタイミングで自動生成したソースを渡してexeファイルにコンパイル』
という解釈でよろしいのでしょうか?

その場合の、配布可能なコンパイラ・リンカ、とはやっぱりCかC++になるでしょうか?

投稿日時 - 2012-07-12 23:52:23

あなたにオススメの質問