1. 托管代码与非托管代码
C#是托管语言,C++是非托管语言。
托管代码和非托管代码的区别
1、托管代码是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。
2、托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;非托管代码依赖于平台和语言。
3、托管代码可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。
C#调用C++Dll库时需要使用特性[DllImport]
2.DLL文件
DLL文件是动态链接库,也叫程序集,是一个包含可由多个程序,同时使用的代码和数据的库。
程序集是在 .NET 公共语言运行库 (CLR) 控制之下运行的逻辑功能单元。程序集实际上是作为 .dll 文件或 .exe 文件存在的。
托管代码生成的DLL文件,可以在VS中直接通过添加引用的方式使用。
非托管代码生成的DLL文件,比如使用C++编写的代码编译生成的DLL,不能在VS中直接引用,可以通过DllImport方法来使用。
3.DLLImport使用
1.将DLL文件导入到Unity项目文件夹中(Plugins)
2.引用命名空间
using System.Runtime.InteropServices;
3.声明函数文章来源:https://www.toymoban.com/news/detail-570536.html
[DllImport(“SDK”, EntryPoint=“Init”, CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Unicode)]
public static extern void Init(string EntName);
注意:文章来源地址https://www.toymoban.com/news/detail-570536.html
- 特性参数
- DLL库文件名
- CallingConvention 入口点调用约定
- Charset 入口点采用的字符集
- EntryPoint 入口点名称
- 方法
- 返回值
- 参数列表
到了这里,关于Unity接入SDK的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!