You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MinGW编译含wtsapi32.h的C++脚本时遇类型未定义错误求助

解决MinGW编译Wtsapi32相关代码的头文件错误

错误原因

WTS_CONNECTSTATE_CLASS这类Windows API类型需要特定版本宏启用,MinGW默认头文件配置未开启高版本Windows API定义,导致类型未声明。同时混用MinGW和Windows Kits的头文件/库会引发兼容性问题,两者编译环境不兼容。

解决方案

1. 修改代码,添加版本宏定义

在包含任何Windows头文件前,定义对应Windows版本的宏,确保启用所需API的定义。推荐使用Windows 10对应的版本值0x0A00:

#define WINVER 0x0A00
#define _WIN32_WINNT 0x0A00
#include <Windows.h>
#include <Wtsapi32.h>

int main()
{
    return 0;
}

2. 使用正确的编译命令

不要同时混用MinGW和Windows Kits的头文件/库路径,直接使用MinGW自身环境编译,链接wtsapi32库即可:

g++ -o executable script.cpp -lwtsapi32

(user32库通常会被Windows.h间接关联,无需额外指定)

3. 升级MinGW版本

如果上述方法无效,检查你的MinGW版本是否过旧。推荐使用MinGW-w64(较新分支,对Windows 10+ API支持更完善),替换旧版MinGW后重新编译。

内容的提问来源于stack exchange,提问作者Philip Müller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:56:05