将 CString 数组转换为 System::String

Posted

技术标签:

【中文标题】将 CString 数组转换为 System::String【英文标题】:Convert CString array to System::String 【发布时间】:2010-03-17 03:53:00 【问题描述】:

我想将 CString 数组转换为托管代码,而不是将其发送到 C#。 对于普通的 CString 我这样做了,

CString menu = "MENU";
String ^ msg = gcnew String(menu);
Globals1::gwtoolbar->Add(msg);

但现在我想发送字符串数组。我不知道如何处理 CString 数组。

当我这样给出时它显示错误

CString menu[10];
String[] ^ msg = gcnew String(menu);

如何转换?

【问题讨论】:

这看起来更像 c++ 而不是 c#,不是吗? 可能我。我只在 VC++ 中进行此编码。我正在使用 VC++ 应用程序将数据从 VC++ 发送到 C# dll。 【参考方案1】:

给定:

CString menu[10]

要转换为 String 的托管数组:

#DEFINE MENU_COUNT 10;

array<String^>^ clrMenu = gcnew array<String^>(MENU_COUNT);

for (int i = 0; i < MENU_COUNT; ++i)

    clrMenu[i] = gcnew String(menu[i]);

【讨论】:

以上是关于将 CString 数组转换为 System::String的主要内容,如果未能解决你的问题,请参考以下文章

将 CString 转换为字符数组?

将 CString 数组转换为 System::String

如何将CString转换为byte []数组? [重复]

mfc中,如何将CString 转换成 string

C++怎么将 CString 转换成 unsigned char 的数组

如何将 CString 转换为 CByteArray?