diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/IceGrid/PlatformInfo.cpp | 45 | ||||
-rw-r--r-- | cpp/src/IceGrid/msbuild/icegridnode/icegridnode.vcxproj | 8 | ||||
-rw-r--r-- | cpp/src/IceGrid/msbuild/icegridregistry/icegridregistry.vcxproj | 8 |
3 files changed, 51 insertions, 10 deletions
diff --git a/cpp/src/IceGrid/PlatformInfo.cpp b/cpp/src/IceGrid/PlatformInfo.cpp index 92f98729301..c64a121176e 100644 --- a/cpp/src/IceGrid/PlatformInfo.cpp +++ b/cpp/src/IceGrid/PlatformInfo.cpp @@ -251,6 +251,13 @@ PlatformInfo::PlatformInfo(const string& prefix, osInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); // +// GetVersionEx will return the Windows 8 OS version value (6.2) for applications +// not manifested for Windows 8.1 or Windows 10. We read the OS version info from +// a system file resource and if that fail we just return whatever GetVersionEx +// returns. +// + +// // GetVersionEx deprecated in Windows 8.1 // # if defined(_MSC_VER) && _MSC_VER >= 1800 @@ -260,10 +267,44 @@ PlatformInfo::PlatformInfo(const string& prefix, # if defined(_MSC_VER) && _MSC_VER >= 1800 # pragma warning (default : 4996) # endif + + + DWORD major = osInfo.dwMajorVersion; + DWORD minor = osInfo.dwMinorVersion; + DWORD build = osInfo.dwBuildNumber; + + HMODULE handle = GetModuleHandleW(L"kernel32.dll"); + if(handle) + { + wchar_t path[MAX_PATH]; + if(GetModuleFileNameW(handle, path, MAX_PATH)) + { + DWORD size = GetFileVersionInfoSizeW(path, 0); + if(size) + { + vector<unsigned char> buffer; + buffer.resize(size) ; + + if(GetFileVersionInfoW(path, 0, size, &buffer[0])) + { + VS_FIXEDFILEINFO* ffi; + unsigned int ffiLen; + if(VerQueryValueW(&buffer[0], L"", (LPVOID*)&ffi, &ffiLen)) + { + major = HIWORD(ffi->dwProductVersionMS); + minor = LOWORD(ffi->dwProductVersionMS); + build = HIWORD(ffi->dwProductVersionLS); + } + } + } + } + } + ostringstream os; - os << osInfo.dwMajorVersion << "." << osInfo.dwMinorVersion; + os << major << "." << minor; _release = os.str(); - _version = osInfo.szCSDVersion; + os << "." << build; + _version = os.str(); switch(sysInfo.wProcessorArchitecture) { diff --git a/cpp/src/IceGrid/msbuild/icegridnode/icegridnode.vcxproj b/cpp/src/IceGrid/msbuild/icegridnode/icegridnode.vcxproj index cf1ccdf6be2..bd54f16a01b 100644 --- a/cpp/src/IceGrid/msbuild/icegridnode/icegridnode.vcxproj +++ b/cpp/src/IceGrid/msbuild/icegridnode/icegridnode.vcxproj @@ -77,7 +77,7 @@ </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Link> - <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <ClCompile> <AdditionalIncludeDirectories>$(Platform)\$(Configuration)\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -85,7 +85,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Link> - <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <ClCompile> <AdditionalIncludeDirectories>$(Platform)\$(Configuration)\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -93,7 +93,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Link> - <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <ClCompile> <AdditionalIncludeDirectories>$(Platform)\$(Configuration)\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -102,7 +102,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Link> - <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;%(AdditionalDependencies) </AdditionalDependencies> + <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;version.lib;%(AdditionalDependencies) </AdditionalDependencies> </Link> <ClCompile> <AdditionalIncludeDirectories>$(Platform)\$(Configuration)\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> diff --git a/cpp/src/IceGrid/msbuild/icegridregistry/icegridregistry.vcxproj b/cpp/src/IceGrid/msbuild/icegridregistry/icegridregistry.vcxproj index 42aad64eeb4..cf4bbd10eee 100644 --- a/cpp/src/IceGrid/msbuild/icegridregistry/icegridregistry.vcxproj +++ b/cpp/src/IceGrid/msbuild/icegridregistry/icegridregistry.vcxproj @@ -77,7 +77,7 @@ </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Link> - <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <ClCompile> <AdditionalIncludeDirectories>$(Platform)\$(Configuration)\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -85,7 +85,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Link> - <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <ClCompile> <AdditionalIncludeDirectories>$(Platform)\$(Configuration)\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -93,7 +93,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Link> - <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <ClCompile> <AdditionalIncludeDirectories>$(Platform)\$(Configuration)\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -102,7 +102,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Link> - <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>advapi32.lib;pdh.lib;ws2_32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <ClCompile> <AdditionalIncludeDirectories>$(Platform)\$(Configuration)\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |