Unity接入SDK

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.声明函数

[DllImport(“SDK”, EntryPoint=“Init”, CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Unicode)]

public static extern void Init(string EntName);

注意:

  1. 特性参数
    1.  DLL库文件名
    2.  CallingConvention 入口点调用约定
    3.  Charset 入口点采用的字符集
    4. EntryPoint 入口点名称
  2. 方法
    1. 返回值
    2. 参数列表

猜你喜欢

转载自blog.csdn.net/weixin_53163894/article/details/131678595