2013-02-11 31 views
2

最近我在試用我的舊VB6,並發現了一件奇怪的事情。
使用procmon中我發現,在編譯時,VB6運行LINK.EXE像這樣的參數:
LINK "D:\Folder\Form1.OBJ" "D:\Folder\Project1.OBJ"... /SUBSYSTEM:WINDOWS,4.0 ... 我在cmd中寫道:Link.exe /?,發現有編譯VB6程序到Native或POSIX應用程序?

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

默認VB6編譯帶參數/子系統:WINDOWS。
但我可以編譯我的VB6代碼到Native或POSIX子系統應用程序嗎?

回答

3

這只是在result.exe文件中設置一點。 Visual Basic使用Microsoft的標準鏈接器,它也用於C/C++,這就是爲什麼標誌在那裏。

所以是的,你可以使用這些設置進行編譯,但我確信生成的exe不會以純模式或Posix子系統運行。

有關這些設置的更多信息,您可能需要查看有關PE文件格式的信息,並查看DUMPBIN和EDITBIN工具。

+0

+1爲好的答案。謝謝,我會檢查這些工具。 – Jet 2013-02-12 15:45:07

0

控制檯是唯一有用的替代子系統。 Posix甚至不存在,因爲Win2K和Native是用於內核模式驅動程序的。

如果有任何這是你的新聞,我想知道你爲什麼玩ProcMon?害怕。

+6

對於你的第一段來說是+1,但是-1對於第二段來說聽起來像是個混蛋。 – 2013-02-11 23:44:34

+0

1)POSIX在WinXP中是活着的。只要谷歌它,你會發現在XP中很多關於POSIX。 2)我已經使用了VB6很多年(〜5年),但我從來沒有從cmd運行Link.exe。 3)我正在使用ProcMon,不僅僅是在玩......請你在寫一個答案時更尊重。 – Jet 2013-02-12 15:41:31

+0

請參閱http://support.microsoft.com/kb/308259我在等待看到在Posix *或* Interix子系統中運行的VB6程序。 – Bob77 2013-02-15 12:34:28

2

VB應用程序使用Win32調用,所以即使您使用僅用於控制檯的應用程序,您的應用程序也不可能工作。

+1

您可以[在VB6中編寫控制檯應用程序](http://vb.mvps.org/tools/vbAdvance/),但它仍然需要Windows。 – MarkJ 2013-02-12 15:32:31

+1

是的。還有一個非常簡單的方法來創建它(或只是將其轉換)。看看這裏http://www.nirsoft.net/vb/appmodechange.html – Jet 2013-02-12 16:02:10

相關問題