Fix Windows architecture reporting in sysinfo

This commit is contained in:
sfan5 2023-12-12 23:53:16 +01:00
parent da832a295e
commit a292cc42aa
1 changed files with 18 additions and 9 deletions

View File

@ -204,7 +204,6 @@ bool detectMSVCBuildDir(const std::string &path)
std::string get_sysinfo()
{
#ifdef _WIN32
std::ostringstream oss;
LPSTR filePath = new char[MAX_PATH];
UINT blockSize;
@ -224,15 +223,25 @@ std::string get_sysinfo()
<< LOWORD(fixedFileInfo->dwProductVersionMS) << '.' // Minor
<< HIWORD(fixedFileInfo->dwProductVersionLS) << ' '; // Build
#ifdef _WIN64
oss << "x86_64";
#else
BOOL is64 = FALSE;
if (IsWow64Process(GetCurrentProcess(), &is64) && is64)
oss << "x86_64"; // 32-bit app on 64-bit OS
else
SYSTEM_INFO info;
GetNativeSystemInfo(&info);
switch (info.wProcessorArchitecture) {
case PROCESSOR_ARCHITECTURE_AMD64:
oss << "x86_64";
break;
case PROCESSOR_ARCHITECTURE_ARM:
oss << "arm";
break;
case PROCESSOR_ARCHITECTURE_ARM64:
oss << "arm64";
break;
case PROCESSOR_ARCHITECTURE_INTEL:
oss << "x86";
#endif
break;
default:
oss << "unknown";
break;
}
delete[] lpVersionInfo;
delete[] filePath;