相关疑难解决方法(0)

如何确定已安装的SQL Server实例及其版本?

我试图确定什么的SQL Server实例/ SQL Express的我已经安装了(手动或编程),但所有的例子都告诉我运行一个SQL查询,以确定这里面假设我已经连接到特定实例.

sql-server sql-server-express

220
推荐指数
12
解决办法
59万
查看次数

C++如何检测Windows Server 2019?

Microsoft于2018年10月2日发布了Windows Server 2019.从Windows 2000到Windows版本,您可以使用结构OSVERSIONINFOEX并根据变量调用WinAPI函数GetVersionEx,并确定Windows版本,例如Windows 8.1, Windows 10,Windows Server 2012 R2.每个人使用的代码都是这样的:dwMajorVersiondwMinorVersionwProductType

OSVERSIONINFOEX osvi;
SecureZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (GetVersionEx(&osvi)) {
    if (osvi.dwMajorVersion == 10 &&
        osvi.dwMinorVersion == 0 &&
        osvi.wProductType != VER_NT_WORKSTATION) {
            Console->Log("We are running on Windows Server 2016");
        }
}
Run Code Online (Sandbox Code Playgroud)

维基百科来看,Windows Server 2019与Server 2016具有相同的NT 10.0版本号.因此上述代码不再起作用.

此外,Microsoft Docs包含以下注释:Windows 8.1之后的版本可能会更改或不可用GetVersionEx.而是使用版本助手功能.

不幸的是,版本助手功能没有检测服务器2019的功能.另外,奇怪的是,关于目标的文档页面在Windows 10停止,并且没有谈论服务器版本,而这些目标清单是检测操作系统必需的在Windows 8.1或Server 2012之上.

更新1. 由于@IInspectable和@RbMm评论了RtlGetVersion函数的用法.所以我运行了以下代码(取自这个答案):

typedef LONG NTSTATUS, *PNTSTATUS;
#define STATUS_SUCCESS …
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi

9
推荐指数
1
解决办法
1698
查看次数

阅读Windows 7中的注册表行为奇怪

我试图在c ++中读取Windows 7中注册表的"(默认)"值,以下是我正在使用的代码:

string GetSZValueUnique( HKEY openKey, const char* regkey, const char* keyName )
{
   HKEY hKey = 0;
   BYTE data[512] ;
   DWORD szsize = 512 ;
   string value ;

   LONG retValue = RegOpenKeyEx( openKey, regkey, 0, KEY_READ, &hKey ) ;

   if ( retValue == ERROR_SUCCESS )
   {
        LONG retV = RegQueryValueEx( hKey, keyName, 0, 0, data, &szsize ) ;
        if ( retV == ERROR_SUCCESS )
        {
           char* _value = reinterpret_cast<char*>(data) ;
           value = _value ;

           RegCloseKey (hKey) ;
           return …
Run Code Online (Sandbox Code Playgroud)

c++ winapi windows-7

7
推荐指数
1
解决办法
3394
查看次数

从注册表中提取REG_MULTI_SZ值并存储在字符串数组c ++中

有一个REG_MULTI_SZ值,我想在一个字符串数组中,以便我的程序可以用它们做其他事情.我从来没有使用过C++来访问注册表,所以在按照一些例子后我有点迷失了.我正在使用VS10.

有一个简单的方法吗?谢谢.

c++ registry visual-studio-2010 visual-c++

2
推荐指数
1
解决办法
3472
查看次数