備忘:
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.csdn.net/sdl2005lyx/article/details/6799495
平台調用P-INVOKE(三)--(封送結構體) :
http://blog.csdn.net/sdl2005lyx/article/details/6801113
平台調用P-INVOKE高級篇(一)--(封送含有二維數組的結構體) :
http://blog.csdn.net/sdl2005lyx/article/details/6998969