実用的かどうかは、判りませんが、HSP2.x時代に質問と同じような要望があり、
実験したことがあります。保存してあったドキュメントから、ほんの少し、HSP3
で動くように簡単なサンプルとして、書換えて実験してみました。axファイルでは
ないのですが、親となるexeファイルを作る際に、このexeからpackfileに格納した
別のexeを実行させるというものです。別プロセスとして単独で実行されます。
>今までのプログラムを続いた状態で・・・・
というニーズに対応?していると思うのですが・・・・ただ、親となるexeファイル
のサイズが大きくなるのが欠点です。作成手順は、ソースのコメントを参照して下さい。
;プログラム(1) (version.as)
;*********************************************************
; 複数プログラムを一つのexeにまとめて実行 (version.as)
;
; (バージョン情報表示モジュールサンプル)
;
; ●version.asとしてsaveしておきます!
;
;*********************************************************
#deffunc version
screen 0,300,160,2
title "バージョン情報"
font "MS Pゴシック",15
color 0,0,0
pos 55,15: mes "Sample Program Ver1.xx"
pos 20,50: mes "Copyright (C) 2006 xxxxxx"
color 0,0,255
pos 70,70: mes "http://hsp.tv/"
pos 70,85: mes "Hot soup processor"
width 300,160,dispx-300>>1,dispy-160>>1:gsel 0,2
repeat : await 50 : loop ;必須
return
;プログラム(2) (dbexe.as)
;**********************************************************
; バージョン情報表示サンプルモジュール (dbexe.as)
;
; ●dbexe.asをdbexe.exeとしてコンパイルする。
;
; このdbexe.exeをmultipack.asのpackfileに格納します。
;**********************************************************
#module
#include "version.as" ;(例)バージョン情報命令
#global
onexit *owari
version ;version.asの中のversion命令を実行
stop
*owari
end
;プログラム(3) dbexe.exeをpackfileに格納して呼び出します。
;***************************************************************
; メインプログラム (multipack.as)
;
; このファイルをexeにする時に、start.axとdbexe.exeをpackfile
; にいっしょに格納して下さい。
; exeにした、このプログラムを起動すると、プログラム(2)から、
; プログラム(1)のモジュールが呼出されて実行されます。
;***************************************************************
screen 0,300,200,2
title "別のexeをpackfileに格納して実行サンプル"
objsize 60,30 : color 0,0,200
pos 10,40:mes "バージョン情報"
pos 160,30:button "Go",*v_sion
width 300,200,100,100:gsel 0,1
stop
*v_sion
;実行
exec "dbexe.exe" ;version呼び出し
stop