1. 首页
  2. 编程语言
  3. C#
  4. C#调用C类型dll入参为struct的问题详解

C#调用C类型dll入参为struct的问题详解

上传者: 2021-06-05 13:14:24上传 PDF文件 73.77 KB 热度 19次

但很多 dll 的参数不会是简单的基础类型,而是结构体 struct 。因此就需要在 C# 端定义同样的结构体类型,才能实现调用 C 类型 dll。这里例举几种不同的结构体情况,以及其对应的解决方案。基础调用方式对于一个结构体类型:在 C# 端就需要定义为包含字符数组对于一个包含字符数组的结构体类型:在 C# 端就需要使用 Marshal 设置数据空间大小,同时最好定义一个初始化函数与 get 的定义包含字符二维数组对于一个包含字符二维数组的结构体类型:在 C# 端同样需要使用 Marshal 设置数据空间大小,需要将两个 Size 相乘,并定义一个初始化函数。那么我们就可以将其再包装一层,转换为 C 类型 dll。C# 那边就这样导入至于 C 类型 dll 中其他类型变量在 C# 的对应,则可以参考 Microsoft 的 总结

下载地址
用户评论