编程语言
首页 > 编程语言> > 如何将const unsigned char *从c传递给c#

如何将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将采用字符串.

标签:interop,marshalling,c,c-4
来源: https://codeday.me/bug/20191106/2000177.html