【发布时间】:2010-05-03 16:05:42
【问题描述】:
使用 VS2008 Managed C++ 封装一个 dll。本机方法采用一系列单个 const char* 值和 char* 值的集合。准备做一个示例函数:
Function1(char * value1, TF_StringList& catList);
TF_StringList 是一个有 3 个插入方法的 dll 类,我要使用的是:
TF_StringList::insert(const char* str);
所以我设置了一个包装方法:
WrapperClass::callFunction(String^ mvalue1, ArrayList mcatList);
mvalue1 转换为 const char* 使用:
const char* value1 = (char*)(Marshal::StringToHGlobalAnsi(mvalue1)).ToPointer();
但是,当获取字符串集合时,我会使用索引对其进行迭代以获取每个字符串:
String^ mstr = mcatList[i];
已经尝试了将 String^ 转换为 const char* 的所有方法,并且在每种情况下,TF_StringList::insert(const char* str) 方法都会引发 C2663 错误,这与值的 const 性有关。 有什么问题?
【问题讨论】:
标签: c++-cli