【问题标题】:Typeconversion in managed c++托管 C++ 中的类型转换
【发布时间】:2009-04-15 10:01:53
【问题描述】:

在尝试从对象转换为字符串数组时,第二行显示编译时错误

'System::String ^' : 本机数组不能包含此托管类型

'initializing' : 无法从 'System::String ^' 转换为 'System::String ^[]'

代码:

RegistryKey ^rk = Registry::LocalMachine->OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQLServer");
String ^instances[] = (String^)rk->GetValue("InstalledInstances");

如何解决这个问题...... 提前致谢。

【问题讨论】:

    标签: .net c++-cli


    【解决方案1】:

    您将instances 声明为数组类型:

    String ^instances[] = (String^)rk->GetValue("InstalledInstances");
    

    改为将其声明为字符串:

    String ^instances = (String^)rk->GetValue("InstalledInstances");
    

    【讨论】:

      【解决方案2】:

      将最后一行改为

      String ^ instances = (String^)rk->GetValue("InstalledInstances");
      

      (注意没有括号)。如果键包含多字符串,请使用

      array<String^>^ instances
          = (array<String^>^)rk->GetValue("InstalledInstances");
      

      请参阅documentation for RegistryKey.GetValue 了解更多信息。

      【讨论】:

        猜你喜欢
        • 2011-10-07
        • 1970-01-01
        • 1970-01-01
        • 2021-05-30
        • 1970-01-01
        • 1970-01-01
        • 2010-11-06
        • 1970-01-01
        • 2019-07-14
        相关资源
        最近更新 更多