2 shen wei shen_wei 于 2014.05.15 14:15 提问

关于C++ 调用C# dll 出现无法转换的数据类型。。

C# 这个函数是这样定义的:Collection EnumerateUsb();

现在VC中可以正常调用C#的dll,包括需要的Namespace等,

CollectionSystem::string str = ls->EnumerateUsb(UsbDeviceType::AnyMasterEmulator);

现在用在这个方法获取出现如下错误:请问这个应该如何修改??如何做到数据的转换。。

1> CTestDlgDlg.cpp
1>CTestDlgDlg.cpp(164): error C2039: “string”: 不是“System”的成员
1>CTestDlgDlg.cpp(164): error C2065: “string”: 未声明的标识符
1>CTestDlgDlg.cpp(164): error C2923: “System::Collections::ObjectModel::Collection”: 对于参数“T”,“string”不是有效的 泛型 类型变量
1>CTestDlgDlg.cpp(164): error C2955: “System::Collections::ObjectModel::Collection”: 使用 类 泛型 需要 泛型 参数列表
1> c:\program files\reference assemblies\microsoft\framework.netframework\v4.0\mscorlib.dll : 参见“System::Collections::ObjectModel::Collection”的声明
1>CTestDlgDlg.cpp(164): error C2670: “System::Collections::ObjectModel::Collection::Collection”: 函数模板不能将参数 1 由类型“System::Collections::ObjectModel::Collection ^”转换

1个回答

shen_wei
shen_wei   Ds   Rxr 2016.12.21 15:14

两年半的等待。。。浏览人数不少。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!