UNITY3D C#调用C封装的函数库方法
2023/10/30 点击:
如果在C函数库test.dll中存在函数int test1(int a, int b), 那么C#对动态库函数的引用可以这样声明,之后可以调用test1函数.
[DllImport("test", EntryPoint = "test1", CallingConvention = CallingConvention.Cdecl)] public static extern int test1(int a, int b);那么如果函数是指针参数怎么办?
若dll中存在函数int test2(int *a, int *b), 那么C#对动态库函数的引用可以这样声明,之后可以调用test2函数.
[DllImport("test", EntryPoint = "test1", CallingConvention = CallingConvention.Cdecl)] public static extern int test1(ref int a,ref int b);如遇到函数的参数为结构体又该如何呢?
struct mydatapack { string name; string sex; int age; } int test3(struct mydatapack data);
我们可以这样声明:
[StructLayout(LayoutKind.Sequential)] public struct datapaclk { public string name; public string sex; public string age; public datapack(string Name,string Sex, int age) { this.name= Name; this.sex= Sex; this.age = Age; } } [DllImport("test", EntryPoint = "test3", CallingConvention = CallingConvention.Cdecl)] public static extern int test3(datapack data);
- 上一篇:协作机械臂遥操作数据手套研制成功 2024/1/27
- 下一篇:unity3d C# 调用C程序封装结构体函数 2023/10/30