我在C#调用 C++DLL 老是获取不到返回值 老是说我类型出错
c++代码如下
int _GetWordsFromSentence(const char **arrWord, const int sz, int sentenceIdx)
{
vector<const char *> vecWord(sz);
if (0 != g_xml4nlp.GetWordsFromSentence(vecWord, 1)) return -1;
for (int i = 0; i < 5; ++i) {
arrWord[i] = vecWord[i];
}
return 0;
}在C++里是这样调用的
vector<const char *> vecWord;
GetWordsFromSentence(vecWord,  i);
我现在想在C#里调用这个函数不知各位大侠,可知道如何调用?并能获取到返回值?

解决方案 »

  1.   

    c++代码看不明白,可以考虑用c#把c++代码实现了.
      

  2.   

    那得看你怎么用的了,vector,你用 List<>类型试试
      

  3.   

    LIST 不行,说是不能用泛型用C#实现,是不实现的
      

  4.   

    stringbuilder s=new stringbuilder("Test")
     GetWordsFromSentence(s,  i);
    这样试验下。
      

  5.   

    public static extern int _GetWordsFromSentence(ref String arrWord, int sz,int sentenceIdx)
      

  6.   

    出错
    类型的异常出现在 CDLL.exe 中。
      

  7.   

    这个还真不能这样传 你好像传入一个vector 这个在net中无法识别的
    需要使用C++/CLI