/ / Conversión de tipos en c ++ administrado - .net, c ++ - cli

Conversión de tipos en c ++ administrado - .net, c ++ - cli

Hola, en la segunda línea al intentar convertir de un objeto a una matriz de cadenas, muestra el error de tiempo de compilación como

"System :: String ^": una matriz nativa no puede contener este tipo administrado

"inicializando": no se puede convertir de "System :: String ^" a "System :: String ^ []"

código:

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

Cómo arreglar esto .... Gracias por adelantado.

Respuestas

0 para la respuesta № 1

Cambia la última línea a

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

(note la ausencia de corchetes). Si la clave contiene un multistring, use

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

Ver el Documentación para RegistryKey.GetValue para más información.


1 para la respuesta № 2

Usted declaró instances como un tipo de matriz:

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

En su lugar, declararlo como una cadena:

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