yetong_

Do what you love. Love what you do.

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


阅读更多
文章标签: c#
个人分类:
想对作者说点什么? 我来说一句

C#调用C/C++ Dll函数实例代码

2009年04月03日 940KB 下载

C#调用CDLL带指针参数的函数

2009年04月16日 36KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭