3
當使用Windows SDK編譯用C++編寫的程序時,如果指定-subsystem:windows,6.1
, 窗口的寬度較小。如果我沒有,或者-subsystem:windows
沒有6.1
,寬度是正常的。C++ Windows鏈接子系統問題
我很好奇爲什麼這樣做,並且如果有辦法讓它保持相同的寬度,而不管我通過什麼命令行鏈接。
編輯:所以它的高度,高度和寬度都不同。如果我用Inspect.exe查看它,它說每次的大小都是一樣的。
EDIT2:另外它是一個使用CreateWindow創建的窗口應用程序,而不是控制檯。
EDIT3:下面是初始化我的窗口中的全碼:
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(SMALL_ICON));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = g_szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(SMALL_ICON));
g_hMainWnd = CreateWindow(
g_szWindowClass,
t_szWindowTitle,
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
CW_USEDEFAULT, CW_USEDEFAULT,
392, 250,
NULL,
NULL,
hInstance,
NULL
);
我調整窗口的大小與此:
SetWindowPos(hWnd, NULL,
(GetSystemMetrics(SM_CXFULLSCREEN)/2)- (392/2),
(GetSystemMetrics(SM_CYFULLSCREEN)/2) - (250/2),
392, 120, SWP_NOZORDER);
哇,等等,什麼? Windows SDK有一個C++編譯器? – Mehrdad
@Mehrdad是啊? cl.exe和link.exe。 – Josh
我認爲這是Visual C++的一部分,也是WDK的一部分,不是SDK的一部分...它在什麼文件夾中? – Mehrdad