如何将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