IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 如何在unity内用vs引用c++语言写的dll -> 正文阅读

[游戏开发]如何在unity内用vs引用c++语言写的dll

简单介绍:

调用dll分为两类,
一类是托管dll
托管代码: 是由公共语言运行库(CLR)执行的代码,而不是由操作系统直接执行。本地代码经过两次编译,第一次将源代码编译成中间代码(MSIL,MicrosoftIntermediate Language),第二次由.net中的CLR将中间代码编译成机器代码。程序实际上是被“托管”在公共语言运行库中。随着程序集的运行,公共语言运行库会持续地提供各种服 务,例如内存管理、安全管理、线程管理等等。
引用方法:
“在解决方案管理器” - “解决方案”(或项目) 中的任意地方, 右键“添加引用”,“浏览”,选择你需要调用的dll文件,确定即可,该dll会自动复制到bin目录,打包时也会自动复制到你发布的地方。
调用方法:
如果有命名空间则引入命名空间,比如你的.dll里面,是a命名空间,有一个b类,然后有一个无参数静态方法c那么调用方法就是a.b.c(),跟你普通的使用类是一样的
另一类就是非托管类dll,也叫本地代码。
具体引用方法和调用方法如下。


引用方式:

dll长下面这样。到时候会收到下面截图中一样的3个文件:
在这里插入图片描述
然后打开.h文件,长下面这样:
在这里插入图片描述
注意JXSY,它就是你要引用的dll名字。然后把.dll文件复制到unity内随意一个文件夹内。再在unity内,随意新建一个C#类,在里面加入以下代码。
1.双引号内是你添加的dll名称,
2.函数是你要用的函数的名称,再加上private static extern ,
3.参数类型,char *类参数可以换成string 类的参数,如果报错可以在string参数前添加 [MarshalAs(UnmanagedType.LPStr)] 通过MarshalAs特性告诉.NET应该封送成什么类型给非托管代码去玩。

    [DllImport("JXSY")]
    private static extern void Chushihua(string shiyanbianhao);

类前添加空间名称,你不添加,也会自动提示

using System.Runtime.InteropServices;

像下面这样的值传递参数,需要用到ref

extern "C" JXSY void ShuzhiSet(char *name, double lalalain);//数值填入的函数

如下图所示方式在参数前添加ref。

    [DllImport("JXSY")]
    private static extern void ShuzhiSet([MarshalAs(UnmanagedType.LPStr)] string name, ref double lalalain);

调用方式:

使用的时候如下图方式使用就可以了。
在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:44:41  更:2021-10-13 11:44:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:30:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码