0

我的 C++/CLI 程序有点问题。

我有几个Char数组可以正常工作。

标题1:

  ref class _CGuid{ 
        static const int CIDGR=37;  
        public: 
        array<Char>^  cGuid;
        array<Char>^ cUuid;

           }

Cpp1 -> 构造器:

 cGuid = gcnew array<Char>(CIDGR);

一些功能:

_CGuid::Type(String^ tmpname,String^  tmpid)
{


pcName=tmpname;
cUuid=tmpid->ToCharArray();


}

所以这对我来说非常好,没有错误。无论如何这不起作用

其他标题:

ref class CStorage{
public:
array<String^>^ names;
array<Char>^ mac;   

其他承包商

names = gcnew array<String^>(100);
mac = gcnew array<Char>(100);

一些功能2:

names[k]=tname;
mac[k]=tmac->ToCharArray(); <-------- Error Line
k++; 

这一行得到错误:

错误 C2440:“=”:无法转换cli::array<Type> ^wchar_t

  with
  [
       Type=wchar_t
  ]

没有可以进行这种转换的上下文

所以我真的不知道这里有什么问题。

4

2 回答 2

1

实际上,错误说明了一切。ToCharArray返回一个array<Char>,您在访问 时尝试将其分配给单个Char(= wchar_t) mac[k]

你可能是打算分配给mac吗?

mac = tmac->ToCharArray();

如果是这样,那么这一行是多余的:

mac = gcnew array<Char>(100);

在这里,您分配内存,mac稍后在重新分配时将其丢弃mac

于 2013-07-15T12:31:22.827 回答
0

在这里,您在 Mac 数组的 1 wchar_t 中复制来自“ToCharArray”的 CLI 数组!

  mac[k]=tmac->ToCharArray(); <-------- Error Line

因为你想要一个 Mac 地址数组,你必须分配它

   mac = gcnew array<array<Char> >(100);

所以现在你可以影响 mac[k]

于 2013-07-15T12:32:45.223 回答