0

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

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

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

代码:

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

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

4

2 回答 2

1

您声明instances为数组类型:

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

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

String ^instances = (String^)rk->GetValue("InstalledInstances");
于 2009-04-15T10:09:32.293 回答
0

将最后一行更改为

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

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

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

有关详细信息,请参阅RegistryKey.GetValue 的文档

于 2009-04-15T10:08:25.587 回答