2011-09-06 20 views

Trả lời

8

/SUBSYSTEM:CONSOLE) dành cho các ứng dụng dựa trên bảng điều khiển. Bạn nên xác định hàm main trong mã.

/SUBSYSTEM:WINDOWS) dành cho các ứng dụng GUI. Bạn nên xác định hàm WinMain.

+7

SUBSYSTEM: WINDOWS không nhất thiết cho ứng dụng GUI. Chỉ dành cho các ứng dụng không có bảng điều khiển. Nghĩ ứng dụng máy chủ, dịch vụ chạy không đầu. –

+2

Nếu nhắm mục tiêu Windows XP từ dòng lệnh MSVC 2013, bạn có thể cần /SUBSYSTEM:WINDOWS,5.1 (hoặc: CONSOLE, 5.1) –

2

/SUBSYSTEM: Kết quả cONSOLE trong một quá trình với một giao diện điều khiển và/SUBSYSTEM: WINDOWS làm không phải.

6

CONSOLE: Cửa sổ bảng điều khiển được hiển thị. WINDOWS - chương trình bắt đầu không có cửa sổ Console.

Đã chỉnh sửa, xem một câu trả lời khác. Lưu ý rằng cờ/SUBSYSTEM không ảnh hưởng đến điểm vào của chương trình. Điểm vào chương trình được xác định bởi/ENTRY linker option. Thông thường/SUBSYSTEM: CONSOLE có điểm vào "chính" và/SUBSYSTEM: WINDOWS có điểm vào "WinMain". Nhưng có thể, ví dụ, để tạo ứng dụng GUI với điểm vào WinMain và cửa sổ Console.

3

Xem here. VS2008 tự động hóa một số điều cho bạn mà đã dẫn đến sự nhầm lẫn.

CONSOLE Ứng dụng chế độ ký tự Win32. Hệ điều hành cung cấp bảng điều khiển cho các ứng dụng giao diện điều khiển. Nếu chính hoặc wmain là được xác định cho mã gốc, int main (mảng ^) được xác định cho mã được quản lý hoặc bạn tạo ứng dụng hoàn toàn bằng cách sử dụng /clr: safe, CONSOLE là mặc định.

WINDOWS Ứng dụng không yêu cầu bảng điều khiển, có thể do ứng dụng tạo cửa sổ riêng để tương tác với người dùng. Nếu WinMain hoặc wWinMain được định nghĩa cho mã nguồn gốc, hoặc WinMain (HISTANCE *, HINSTANCE *, char *, int) hoặc wWinMain (HINSTANCE *, HINSTANCE *, wchar_t *, int) được định nghĩa cho mã số quản lý, WINDOWS là mặc định.

Các vấn đề liên quan