2

最近、古い VB6 で実験を行っていたところ、奇妙なことがわかりました。
ProcMon を使用すると、コンパイル中に VB6 が Link.exe を次のようなパラメーターで実行する
LINK "D:\Folder\Form1.OBJ" "D:\Folder\Project1.OBJ"... /SUBSYSTEM:WINDOWS,4.0 ... ことLink.exe /?がわかりました 。

link.exe /?
usage: LINK [options] [files] [@commandfile]      
    options:      
    ...    
    /SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}

デフォルトでは、VB6 はパラメーター /SUBSYSTEM:WINDOWS でコンパイルします。
しかし、VB6 コードをネイティブまたは POSIX サブシステム アプリケーションにコンパイルできますか?

4

3 に答える 3

3

これは、結果のexeファイルにビットを設定するだけです。Visual Basic は、C/C++ にも使用される Microsoft の標準リンカを使用するため、フラグが存在します。

はい、これらの設定でコンパイルできますが、結果として得られるexeがネイティブモードまたはPosixサブシステムで実行されないことは確かです。

これらの設定の詳細については、PE ファイル形式に関する情報を確認し、DUMPBIN および EDITBIN ツールを参照してください。

于 2013-02-11T21:34:47.910 に答える
2

VB アプリケーションは Win32 呼び出しを使用するため、コンソールのみのアプリケーションを使用している場合でも、アプリケーションが動作する可能性はありません。

于 2013-02-12T00:39:30.477 に答える
0

コンソールは、便利な唯一の代替サブシステムです。Win2KとNativeはカーネルモードドライバー用であるため、Posixは存在しません。

これがあなたにとってニュースであるなら、なぜあなたはProcMonで遊んでいるのだろうか?怖い。

于 2013-02-11T21:54:23.260 に答える