c++ - 错误 C2440 '=' : cannot convert from 'cli::array<Type> ^' to 'wchar_t'

标签 c++ .net c++-cli

我的 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++; 

此行出现错误:

error C2440: '=' : cannot convert from cli::array<Type> ^ to wchar_t

  with
  [
       Type=wchar_t
  ]

There is no context in which this conversion is possible

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

最佳答案

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

您可能是想分配给 mac相反?

mac = tmac->ToCharArray();

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

mac = gcnew array<Char>(100);

此处为mac分配内存当你重新分配 mac 时你会扔掉它.

关于c++ - 错误 C2440 '=' : cannot convert from 'cli::array<Type> ^' to 'wchar_t' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17654154/

相关文章:

c++ - 初始化类构造函数初始化列表中对象数组的第一个条目

c++ - 如何通过一组线段找到最大交点数

c++ - 读取传感器数据的线程或定时器?

.net - 在 ControlTemplate.Triggers 中使用 TemplateBinding

c# - StructureMap:在基类中注入(inject)原始属性

windows - 通用 Windows 平台应用程序和 C++/CLI (VS 2015 RC1)

c++ - 如何访问图像上 2 个非线性点之间的所有像素

c# - 这种类型的委托(delegate)叫什么(C#)

c++ - 内存泄漏、大量位图图像 C++ CLI

visual-studio-2012 - Visual Studio 2012 在 Debug模式下超出范围