環境は、win2000、VB6.0です。
聞きたい内容は、
VBで、VBPをコンパイルし、exeを生成する
自動コンパイルツールを作成したのですが、
exeを保存する場所を 個々のVBPファイル内で指定した場所に保存したいのです。
現在の状況は、コード内にて指定した、一箇所にしかexeファイルを保存できません。
コンパイルするVBPファイルは複数あり、
VBPに応じて、保存場所を分けたいのです。
以前に1つ1つ単体でVBPを単体でコンパイルした時に、指定したフォルダ場所が
VBP内に残っています。
それを反映しつつ、作成したコンパイルツールにて一括コンパイルを
考えています。
どうが、アドバイスいただきたいです。
よろしくお願いいたします。
VBPファイルの「Path32」というところに相対パスが書いてありますが、これじゃダメなんでしょうか?
編集 削除VB6.EXEのコマンドラインに、/make オプションだけではなく、
/outdir オプションも指定してみるとか。
>nanashiさん、魔界さん
はい、確かにPath32に相対パスがあります。
この相対パスに応じて、保存先を変更したいんです。
>VB6.EXEのコマンドラインに、/make オプションだけではなく、
>/outdir オプションも指定してみるとか。
今、/outdirをしており、その場所にしか落ちないのです。
(まあ、当然なのですが。。)
逆に /outdirを指定しなければ、VBP内の相対パスに落ちるのかな?
一度、やってみます。
nanashiさん、魔界さん、
ありがとうございます。
なんとか、いけたようです。
以下に、編集したPGの抜粋を載せます。
ありがとうございました。
********PG抜粋**********
'SMR格納ディレクトリをセット
WK_DIR = DRIVE & PATH & "\"
On Error Resume Next
WK_FILENAME = Dir(WK_DIR & FILE)
Do While Trim$(WK_FILENAME) <> ""
DoEvents
'初回は無条件でコンパイル、2回目以降はexeの生成が確認されてから。
If vbCNT = 0 Or PathFileExists("D:\JAPC\HYOJUN\BIN\" & PreviouFile) <> "0" Or _
PathFileExists("D:\JAPC\HANBAI\BIN\" & PreviouFile) Or _
PathFileExists("D:\JAPC\KYUYO\BIN\" & PreviouFile) Then
Form1.FILE_NAME.Caption = WK_FILENAME
'生成直前で対象exeをDelete
Call Kill("D:\JAPC\HYOJUN\BIN\" & _
Replace(UCase(WK_FILENAME), ".VBP", ".exe"))
'コンパイル
Shell VB_PATH & " " & WK_DIR & WK_FILENAME & " " & _
"/MAKE /OUT D:\JAPC\HYOJUN\BIN\ERROR.TXT"
PreviouFile = Replace(UCase(WK_FILENAME), ".VBP", ".exe")
WK_FILENAME = Dir
vbCNT = vbCNT + 1
End If
Loop