托管 c++ 中的类型转换

发布于 2024-07-18 04:18:46 字数 396 浏览 3 评论 0原文

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

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

“初始化”:无法从“System::String ^”转换到'System::String ^[]'

代码:

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

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

Hi in the second line while trying to convert from object to String array it shows compile time error as

'System::String ^' : a native array cannot contain this managed type

'initializing' : cannot convert from 'System::String ^' to 'System::String ^[]'

code:

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

How to fix this ....
Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

垂暮老矣 2024-07-25 04:18:46

您将 instances 声明为数组类型:

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

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

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

You declared instances as an array type:

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

Instead, declare it as a string:

String ^instances = (String^)rk->GetValue("InstalledInstances");
无尽的现实 2024-07-25 04:18:46

将最后一行更改为

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

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

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

请参阅RegistryKey.GetValue 文档 了解更多信息。

Change the last line to

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

(note the absence of brackets). If the key contains a multistring, use

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

See the documentation for RegistryKey.GetValue for more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文