备忘:
1.C函数参数为字符串char*。如果是入参,对应C#中string或StringBuilder;如果是出参对应C#中StringBuider;
2.C函数参数为结构体指针,需在C#中对应定义结构体。如果是入参,C#中可为myfunction(MyStruct mystruct)或myfunction(ref MyStruct mystruct);如果是出参,C#中为myfunction(ref MyStruct mystruct)。有多个函数使用MyStruct参数时,如果有一个函数使用ref,则其它函数也要使用ref,无论其是否是出参,否则会在运行时提示出现内存错误。即要尽量保证同一结构体类型的参数在C#中定义的一致性。
3.C函数不能返回数组,但可将数组封装为结构体的成员,通过返回结构体结果,从而得到要返回的数组。
其它参考文章:
平台调用P-INVOKE(一)--(基础篇) :
http://blog.****.net/sdl2005lyx/article/details/6796037
http://blog.****.net/sdl2005lyx/article/details/6799495
http://blog.****.net/sdl2005lyx/article/details/6801113
平台调用P-INVOKE高级篇(一)--(封送含有二维数组的结构体) :
http://blog.****.net/sdl2005lyx/article/details/6998969