首页 > 其他 > 详细

(转)C#调用C函数(DLL)传递参数问题

时间:2014-05-26 10:06:27      阅读:313      评论:0      收藏:0      [点我收藏+]

备忘:

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

(转)C#调用C函数(DLL)传递参数问题,布布扣,bubuko.com

(转)C#调用C函数(DLL)传递参数问题

原文:http://www.cnblogs.com/lhuan/p/3747324.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!