Типовая конверсия в управляемом с ++ - PullRequest
0 голосов
/ 15 апреля 2009

Привет во второй строке при попытке преобразовать из объекта в массив строк, он показывает ошибку времени компиляции как

'System :: String ^': собственный массив не может содержать этот управляемый тип

'initializing': невозможно преобразовать 'System :: String ^' в 'System :: String ^ []'

Код:

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

Как это исправить .... Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 15 апреля 2009

Вы объявили instances как тип массива:

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

Вместо этого объявите его как строку:

String ^instances = (String^)rk->GetValue("InstalledInstances");
0 голосов
/ 15 апреля 2009

Изменить последнюю строку на

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

(обратите внимание на отсутствие скобок). Если ключ содержит многорядную строку, используйте

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

См. документацию для RegistryKey.GetValue для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...