如何将const unsigned char *从c传递给c#

因此,我在非托管c语言中有一个函数,当某些文本碰巧到达时被调用:

#using <MyParser.dll>
...
void dump_body(const unsigned char *Body, int BodyLen) 
{
  // Need to pass the body to DumpBody, but as what type?
     ...
  MyParser::Parser::DumpBody(???);
}

DumpBody是在C#DLL中定义的静态函数,应采用一个类型的参数?

正文包含一个长度为BodyLen的字符(文本)数组.

显然这里需要进行一些编组工作,但我不知道该如何做.

请帮忙.

解决方法:

void dump_body(const unsigned char *body, int bodyLen)
{
    // you might want a different encoding...
    String ^str = gcnew String((sbyte*)body, 0, bodyLen, gcnew ASCIIEncoding);
    MyParser::Parser::DumpBody(str);
}

DumpBody将采用字符串.

上一篇:编组带有字符串的结构时,PInvoke错误


下一篇:将结构传递给非托管代码时C#-System.AccessViolationException