c++ - TCHAR 与 LPSTR 不兼容
问题描述
TCHAR 的参数类型与参数类型 LPSTR 不兼容。
我该如何解决这个问题?我试过转换/转换类型无济于事
void getHWID()
{
// GetVolumeInformationA
DWORD DriveSerial;
// GetComputerNameA
LPSTR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(ComputerName) / sizeof(ComputerName[0]);
// OS GUID
HW_PROFILE_INFO hwProfileInfo;
DWORD OsGUID;
GetVolumeInformationA(0, nullptr, '\0', &DriveSerial, nullptr, nullptr, nullptr, 0);
GetComputerNameA(ComputerName, &size);
GetCurrentHwProfileA(&hwProfileInfo);
memcpy(&OsGUID, &hwProfileInfo.szHwProfileGuid, sizeof(hwProfileInfo.szHwProfileGuid));
};
解决方案
更改LPSTR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];
为CHAR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];
LPSTR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];
的类型ComputerName
是LPSTR
数组,但不是LPSTR
。
推荐阅读
- mysql - MySQL REGEX 将 json 转换为逗号分隔的键以在 WHERE IN 中使用
- python - How to get values in TensorArray which contain vary shape tensors
- java - getURLForResource() 的包含文件是什么?
- java - AbstractMethodError:org.apache.bval.jsr303.ConfigurationImpl 缺少方法 getDefaultParameterNameProvider() 的定义
- c# - 从另一个项目运行 .net core 项目
- vector - 如何反向填充向量?
- java - BufferedReader 中的方法跳过和重置有哪些实际用例?
- javascript - 隐藏日期选择器的日历图像
- excel - 使用Excel提取两个相同字符之间的部分字符串
- sumo - 无法在 macOS 上安装 sumo 二进制文件