Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用C++;?_C++_Visual C++ - Fatal编程技术网

C++ 如何使用C++;?

C++ 如何使用C++;?,c++,visual-c++,C++,Visual C++,如何以编程方式获取Sqlserver安装路径 如果我们使用注册表,那么注册表配置单元在不同的操作系统之间可能会有所不同 比如w2k3到w3k8和VISTA以及W2k8 R2之类的 但我使用注册表的方法如下,但我给出了一些硬代码键值,如果配置单元相同,则没有问题,如果不同,则问题出现 CRegKey cregkey; DWORD result; const char subkey[]="SOFTWARE\\Microsoft\\Microsoft SQL Server\\100"; con

如何以编程方式获取Sqlserver安装路径

如果我们使用注册表,那么注册表配置单元在不同的操作系统之间可能会有所不同

比如w2k3到w3k8和VISTA以及W2k8 R2之类的

但我使用注册表的方法如下,但我给出了一些硬代码键值,如果配置单元相同,则没有问题,如果不同,则问题出现

    CRegKey cregkey;
DWORD result;
const char subkey[]="SOFTWARE\\Microsoft\\Microsoft SQL Server\\100";
const char keyval[] = "VerSpecificRootDir";
char path[ 2048 ];
result = cregkey.Open(HKEY_LOCAL_MACHINE,subkey);
    if (ERROR_SUCCESS == result)
    {
        DWORD dwCount = sizeof( path );
        result = cregkey.QueryStringValue(keyval, path, &dwCount);
          if (ERROR_SUCCESS == result) 
           {              
                cout<<" The SQLSERVER Pathis "<<path<<endl;

           }
   }                
CRegKey-CRegKey;
德沃德结果;
常量字符子项[]=“软件\\Microsoft\\Microsoft SQL Server\\100”;
const char keyval[]=“VerSpecificRootDir”;
字符路径[2048];
结果=cregkey.Open(HKEY_本地_机器,子键);
如果(错误\成功==结果)
{
DWORD dwCount=sizeof(路径);
结果=cregkey.QueryStringValue(keyval、path和dwCount);
如果(错误\成功==结果)
{              

cout我假设独立于实例设置的配置单元(即不依赖于您运行的SQL Server实例数量的共享工具)应该是HKEY_LOCAL\u MACHINE\SOFTWARE\Microsoftft\Microsoft SQL Server(版本号)。如果您找不到HKEY_LOCAL\u MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100版本的工具(与SQL Server 2008相匹配),也许您可以检查90版本(SQL 2005)HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90

您是否见过在某些版本的Windows上,此配置单元有所不同


这里还有一篇文章解释如何获取实例感知注册表项 例如,在我们的安装脚本中,我们使用HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Setup中的值。其中MSSQL.1是实例名称,实例名称可以在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance names中找到

我还看到几篇文章建议阅读HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Setup 我不会在Windows XP上工作,但它在Win 2003 Srv上工作 看

因此,您可能无法实现更复杂的逻辑-首先检查HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup(如果不存在),检查HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Setup…但这是您需要的实例感知文件夹,如Binn、数据、备份