"); //-->
错误 C2371 “SC_HANDLE”: 重定义;不同的基类型 的核心原因在于,编译器在处理 diagnostic_demo.cpp 这个文件时,遇到了两个关于 SC_HANDLE 的定义,并且这两个定义的类型不兼容。
你提供的代码是 typedef void* SC_HANDLE;。这本身没有问题,但问题在于,在编译器看到你这一行代码之前,它已经通过某个被包含的头文件看到了另一个 SC_HANDLE 的定义。
问题根源:与 Windows SDK 的冲突
SC_HANDLE 是一个在 Windows 操作系统编程中非常常见的类型定义,它代表“Service Control Manager Handle”(服务控制管理器句柄)。
这个类型通常在 Windows 的头文件 winsvc.h 中定义,而 winsvc.h 又经常被更常见的 windows.h 所包含。
在 winsvc.h 中,它的定义通常是这样的:
C
虽然最终类型都是 void*,但编译器在处理 typedef 时,会认为 typedef void* SC_HANDLE; 和 typedef HANDLE SC_HANDLE; 是基于不同基类型的重定义,因此会报 C2371 错误。
你的项目路径中包含 C-V2X\SDK\Middleware,这表明你正在一个复杂的SDK环境中工作,这个环境极有可能为了实现某些功能(如系统服务、底层通信等)而包含了 windows.h。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
Windows 10将彻底“退役”
Windows下PIC8位单片机源程序汇编和固化(二)
Windows CE 开发初步
用Botspot虚拟机在Raspberry Pi 5上运行Windows 11
Windows XP Embedded介绍(老站转)
高通扩展 Windows 平台骁龙系列产品线,推出 X2 Plus
Windows下PIC8位单片机源程序汇编和固化(五)
中国将拥有自己的“Windows”操作系统
4 Windows 平台 Arduino 开发环境的搭建
2 树莓派型号指南
Windows下PIC8位单片机源程序汇编和固化(四)
英伟达和联发科技可能会在 Computex 上推出联合开发的适用于 Windows PC 的“N1”Arm 芯片
Windows 11通过修改的原生NVMe驱动,将SSD性能推向新高——部分测试中随机工作负载性能提升了高达85%
[链接]Firefox_ 重新发现网络
Microsoft承诺将Windows 11打造为最佳游戏作系统——表示将重点关注后台工作负载、电源与调度、图形堆栈以及驱动程序
用户报告称,12月的Windows 11安全更新修复了AMD GPU卡顿和驱动崩溃的问题
Windows XP Embedded中的新增特性(老站转)
3 介绍进行树莓派开发需要的硬件
汉化版GPIB驱动程序—— NI-488.2 version 2.3 for Windows
Xbox应用现已在所有基于Arm架构的Windows 11设备上可用——Microsoft表示“超过85%的Game Pass目录与这些PC兼容”
1 树莓派基础介绍
Windows下PIC8位单片机源程序汇编和固化(一)
Windows 11 的文件资源管理器很快会更快、更易作
微软输掉官司 Windows必须嵌Java
亚太区市场Windows CE PDA增长迅猛
Windows 11 26H1:微软为Arm架构电脑打造的专属版本
ASIX OS & ASIX Windows
自己动手写操作系统
智领未来——嵌入式Windows 8全新功能概览
Windows下PIC8位单片机源程序汇编和固化(三)