2013-02-11 1 views
2

최근에 나는 낡은 VB6을 실험하고 있었고 이상한 것을 발견했다.
은 ProcMon를 사용하여 나는 컴파일하는 동안, VB6이 같은 매개 변수와 함께 LINK.EXE를 실행하는 것을 발견 : LINK "D:\Folder\Form1.OBJ" "D:\Folder\Project1.OBJ"... /SUBSYSTEM:WINDOWS,4.0 ...
나는 cmd를 Link.exe /?을 썼다 및 기본 VB6으로VB6 프로그램을 기본 또는 POSIX 응용 프로그램으로 컴파일 하시겠습니까?

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

매개 변수/서브 시스템이 컴파일 발견 : WINDOWS를.
그러나 VB6 코드를 기본 또는 POSIX 하위 시스템 응용 프로그램으로 컴파일 할 수 있습니까?

답변

3

이것은 resultung exe 파일에 비트를 설정합니다. Visual Basic은 C/C++에서도 사용되는 Microsoft의 표준 링커를 사용하므로 플래그가있는 것입니다.

그래, 그 설정으로 컴파일 할 수는 있지만, 결과로 나타나는 exe는 기본 모드 나 Posix 서브 시스템에서 실행되지 않을 것입니다.

이러한 설정에 대한 자세한 내용은 PE 파일 형식에 대한 정보를 확인하고 DUMPBIN 및 EDITBIN 도구를 살펴보십시오.

+0

+1 좋은 답변입니다. 고마워, 그 도구를 확인해 볼게. – Jet

0

콘솔은 유용한 유일한 대체 하위 시스템입니다. Posix는 Win2K 이후에도 존재하지 않으며 Native는 커널 모드 드라이버 용입니다.

이 중 하나가 뉴스라면 ProcMon을 가지고 노는 이유가 궁금합니다. 무서운.

+6

첫 번째 단락에는 +1, 두 번째 단락에는 얼간이처럼 들리는 -1. –

+0

1) WinXP에서 POSIX가 살아있다. 그냥 구글로 XP에서 POSIX에 대해 많이 알게 될 것이다. 2) 나는 VB6 많은 - 많은 년 (~ 5 년),하지만 난 cmd에서 Link.exe를 실행 적이있다. 3) ProcMon을 사용하고 있습니다. 단지 연주하는 것이 아닙니다 ... 제발, 당신이 대답 할 때 더 존경 해주십시오. – Jet

+0

http://support.microsoft.com/kb/308259 Posix * 또는 * Interix 하위 시스템에서 실행되는 VB6 프로그램을 보려고 기다리고 있습니다. – Bob77

2

VB 응용 프로그램은 Win32 호출을 사용하므로 콘솔 전용 응용 프로그램을 사용하더라도 응용 프로그램이 작동하지 않습니다.

+1

[VB6에서 콘솔 응용 프로그램을 작성할 수 있습니다] (http://vb.mvps.org/tools/vbAdvance/), 여전히 Windows가 필요합니다. – MarkJ

+1

예. 또한 그것을 창조하는 (또는 다만 그것을 개조하는) 아주 쉬운 방법이있다. 여기를 봐 http://www.nirsoft.net/vb/appmodechange.html – Jet