托管c ++中的Typeconversion

时间:2009-04-15 10:01:54

标签: .net c++-cli

您好在第二行尝试从对象转换为String数组时,它将编译时错误显示为

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

'初始化':无法从'System :: String ^'转换为'System :: String ^ []'

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

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

2 个答案:

答案 0 :(得分:1)

您将instances声明为数组类型:

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

相反,将其声明为字符串:

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

答案 1 :(得分:0)

将最后一行更改为

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

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

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

有关详细信息,请参阅documentation for RegistryKey.GetValue