首页 > 解决方案 > 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)); 
};

标签: c++casting

解决方案


更改LPSTR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];CHAR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];

LPSTR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];的类型ComputerNameLPSTR 数组,但不是LPSTR


推荐阅读