C ++ Windows链接子系统问题

当使用Windows SDK编译用C ++编写的程序时,如果指定-subsystem:windows,6.1 ,窗口的宽度更小。 如果我不这样做,或者做 – -subsystem:windows没有6.1 -subsystem:windows ,宽度是正常的。

我很好奇为什么这样做,如果有办法让它保持相同的宽度,无论我通过什么命令行链接。

编辑:所以它也是高度,高度和宽度都不同。 如果我用Inspect.exe来查看,它说每次的大小都是一样的。

编辑2:也是一个窗口应用程序与CreateWindow创build,而不是控制台。

编辑3:这是完整的代码,初始化我的窗口:

 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); 

我怀疑你是指定一些窗口风格,只有在Windows7(Win7 = 6.1)支持。 用参数发送完整的CreateWindow调用,并尝试关闭Aero。 例如,在一个场景中,窗口边界可以包含在宽度/高度中。