(转)C#调用C函数(DLL)传递参数问题_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > (转)C#调用C函数(DLL)传递参数问题

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

 2014/5/23 13:10:18  lhuan  博客园  我要评论(0)
  • 摘要:备忘:1.C函数参数为字符串char*。如果是入参,对应C#中string或StringBuilder;如果是出参对应C#中StringBuider;2.C函数参数为结构体指针,需在C#中对应定义结构体。如果是入参,C#中可为myfunction(MyStructmystruct)或myfunction(refMyStructmystruct);如果是出参,C#中为myfunction(refMyStructmystruct)。有多个函数使用MyStruct参数时,如果有一个函数使用ref
  • 标签:C# 函数 问题

备忘:

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函数不能返回数组,但可将数组封装为结构体的成员,通过返回结构体结果,从而得到要返回的数组。

 

其它参考文章:

class="link_title">平台调用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

上一篇: 未来是什么! 下一篇: 没有下一篇了!
发表评论
用户名: 匿名