起動すると値を返すexeを作るには?


sato  2003-07-15 09:26:13  No: 107775  IP: [192.*.*.*]

ダブルクリックするとコード中に定義した値を返すようなexeを作成したいのですが可能なんでしょうか?
よろしくお願いします。

編集 削除
nanashi  2003-07-15 09:55:13  No: 107776  IP: [192.*.*.*]

どこに返すのでしょうか?
環境は?

編集 削除
sato  2003-07-15 11:14:55  No: 107777  IP: [192.*.*.*]

リターンコードをexe外に返すということです。
Win2kです。exitprocessを使うとできそうだということが調べてわかったのですが、具体的にはどのように使用すればよいのでしょうか?

編集 削除
toku  2003-07-15 12:19:37  No: 107778  IP: [192.*.*.*]

『exe外』ってどこですか?
具体的にどのようなことをしたいのですか?

編集 削除
魔界の仮面弁士  2003-07-15 12:34:21  No: 107779  IP: [192.*.*.*]

# 環境を明記しましょう。

VB.NETで、という意味であれば、Sub Main を Function Mainに
変更して、Int32値を返してやればOKです。


VB6以下で、という意味であれば、基本的には不可能です。
一応、ExitProcess APIを使えば返せない事は無いのですが、
VBの内部から呼ぶべきAPI関数では無い、とされています。

VB6で実現するなら、他の手段を講じた方が良いでしょう。
良く使われるパターンとしては、以下のような物があります。

案1) EXEをActiveX EXEにして、VBScriptからCreateObjectで呼び出し、
  WScript.Quitメソッドでリターンコードを返すようにする。

案2) EXE側は、終了時になんらかのファイル(0バイトでもOK)を
  生成するようにする。呼び出し側では、リターンコードを
  取得する替わりに、そのファイルの存在にて戻り値を判定する。

案2') 呼び出し側を変更できない場合は、C++やVB.NETなどで
  リターンコードを返すようなラッパーアプリを作っておき、
  そこからVB6製EXEを呼び出すようにする。

編集 削除