首页 > 代码库 > (转)C#调用C函数(DLL)传递参数问题
(转)C#调用C函数(DLL)传递参数问题
备忘:
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/6796037
平台调用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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。