首先回顾一下API和C#参数类型的基本对应关系:

需要注意的是这个对应关系是传入参数的对应关系,如果是输出参数,LPSTR和LPCSTR(也就是C/C++里面的char*),对应的就要是StringBuider。

例如:int TEST(char* result)

其中result是输出参数,那么在c#中,就应该使用 int TEST(StringBuider result),而不是ref string,否则会报内存错误。

所以总结一下:C函数中参数类型是Char*,如果是传入参数,那么C#中就应该使用string或者StringBuider,如果是输出参数,就直接使用StringBuider。