mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
User survey: detect the machine the app is running on
We build 32bit Windows binaries - but we really want to know if the OS is x86_64 or i386. This little hack should give us that information. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
5149bc0df8
commit
fd22e8123b
3 changed files with 43 additions and 2 deletions
|
|
@ -442,3 +442,33 @@ QString SubsurfaceSysInfo::prettyOsName()
|
|||
return unknownText();
|
||||
#endif
|
||||
}
|
||||
|
||||
// detect if the OS we are running on is 64 or 32bit
|
||||
// we only care when building on Intel for 32bit
|
||||
QString SubsurfaceSysInfo::osArch()
|
||||
{
|
||||
QString res = "";
|
||||
#if defined(Q_PROCESSOR_X86_32)
|
||||
#if defined(Q_OS_UNIX)
|
||||
struct utsname u;
|
||||
if (uname(&u) != -1) {
|
||||
res = u.machine;
|
||||
}
|
||||
#elif defined(Q_OS_WIN)
|
||||
|
||||
/* this code is from
|
||||
* http://mark.koli.ch/reliably-checking-os-bitness-32-or-64-bit-on-windows-with-a-tiny-c-app
|
||||
* there is no license given, but 5 lines of code should be fine to reuse unless explicitly forbidden */
|
||||
typedef BOOL (WINAPI *IW64PFP)(HANDLE, BOOL *);
|
||||
BOOL os64 = FALSE;
|
||||
IW64PFP IW64P = (IW64PFP)GetProcAddress(
|
||||
GetModuleHandle((LPCSTR)"kernel32"), "IsWow64Process");
|
||||
|
||||
if(IW64P != NULL){
|
||||
IW64P(GetCurrentProcess(), &os64);
|
||||
}
|
||||
res = os64 ? "x86_64" : "i386";
|
||||
#endif
|
||||
#endif
|
||||
return res;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue