ファイルの埋め込み

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
Taro

ファイルの埋め込み

#1 投稿記事 by Taro »

テキストファイルやCSVファイルを、EXEの中に埋め込むことって
出来るでしょうか。普通にソースファイルに追加すると、
プログラムとして認識され、エラーが出てしまいました。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#2 投稿記事 by 7 »

ResHackerというソフトを使うことでそういったファイルを実行ファイルに捻じ込んでやることができると思います。
リソースとしてプログラム側から読み込めるか?、読み込む方法は?、といったことは分からないのですけど。
ゲスト

Re: ファイルの埋め込み

#3 投稿記事 by ゲスト »

割り込みすいません

> テキストファイルやCSVファイルを、EXEの中に埋め込むことって
> 出来るでしょうか。普通にソースファイルに追加すると、
> プログラムとして認識され、エラーが出てしまいました。
これって・・・EXEファイルであれば埋め込む事は可能って事なんでしょうか???
そうであれば是非どうやるのか教えて貰えませんか?
出来たら、埋め込んだEXEの実行方法も。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: ファイルの埋め込み

#4 投稿記事 by 7 »

> これって・・・EXEファイルであれば埋め込む事は可能って事なんでしょうか???
実行ファイルに実行ファイルを埋め込む事も可能ですね。

> そうであれば是非どうやるのか教えて貰えませんか?
さっきはResHackerって書いてしまったんですけど、Resource Hackerというソフトを使ってリソースを追加します。
「アクション」→「新しいリソースを追加する」って感じになります。

> 出来たら、埋め込んだEXEの実行方法も。
実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。

とりあえず文字列リソースを読み込む方法はLoadString()関数を使うらしいってことまでは分かったんですけど、リソースから文字列を取得できないんですよねぇ。
エラーメッセージは「指定されたリソースの種類がイメージ ファイルに見つかりません。」なんですけど、解決策を思い付きません。

コード: 全て選択

Declare Function LoadString Lib "user32" Alias "LoadStringA" (
	ByVal hInstance As HINSTANCE,
	ByVal uID As DWord,
	ByVal lpBuffer As BytePtr,
	ByVal nBufferMax As Long) As Long
上瞼と下瞼が仲良くしたがってるので寝ます...。
ゲスト

Re: ファイルの埋め込み

#5 投稿記事 by ゲスト »

> 実行ファイルに実行ファイルを埋め込む事も可能ですね。
おっ!!

> さっきはResHackerって書いてしまったんですけど、Resource Hackerというソフトを使ってリソースを追加します。
> 「アクション」→「新しいリソースを追加する」って感じになります。
おおおっ!!

> > 出来たら、埋め込んだEXEの実行方法も。
> 実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。
・・・・バタッ って感じですね(笑)
やっぱり、無理なんですかね?

独り言
EXEからAB(ソース)に変換するプログラムって誰か作ってくれないかなぁ~ ぼそっ
ノッチ
記事: 82
登録日時: 2005年6月01日(水) 23:27
お住まい: 北海道札幌市

Re: ファイルの埋め込み

#6 投稿記事 by ノッチ »

> > > 出来たら、埋め込んだEXEの実行方法も。
> > 実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。
> ・・・・バタッ って感じですね(笑)
> やっぱり、無理なんですかね?

おもしろそうなので試してみたらうまくいきました。

まずは

http://angusj.com/resourcehacker/

ここのページの下のほうにあるJapaneseからResourceHackerをGetする。
でもって、新規のabpファイルに
上記コードをコピペ後、リリースコンパイルで実行ファイル作成。

ResourceHackerから作成した実行ファイルを読み込む。

アクション->新しいリソースを追加する "リソースを含むファイルを開く" を選択し、
追加したいファイルを選択。
リソースの種類に数字の10、リソース名に数字の1(この辺はそれぞれ適当に)
を入力しリソースを追加する。

追加したら保存をして実行ファイルを実行するだけ。


上記のコードを変更しないで実行すると"Resource.test"というファイルが作成されます。
実行ファイルをリソースに入れたのであれば****.exeにResourceFileNameを
変更して、Execを呼び出すなりするだけでインストーラ的なものが作れます。

こんな感じでどうですか?
返信する