在Unity中使用C#调用C++动态链接库(DLL)

 

在Unity中使用C#调用C++动态链接库(DLL)

https://blog.csdn.net/qq_51456342/article/details/125693678

 

[FNote:  属性页中无C++项时, 要先写点代码编译一下,就有了]

在Unity中使用C#调用C++动态链接库(DLL)

辉哥威武

已于 2022-07-09 16:58:42 修改

1618
收藏 1
分类专栏: Unity游戏开发 文章标签: unity c# c++
版权

Unity游戏开发
专栏收录该内容
3 篇文章1 订阅
订阅专栏
一、创建C++动态链接库(DLL)
二、将Dll库在Unity工程中调用二、将Dll库在Unity工程中调用@TOC

一、创建C++动态链接库(DLL)
1、创建一个C++的空项目(如下图)
创建一个C++的空项目:

2、配置项目属性为动态链接库
右键项目属性打开配置文件的输出类型为类库【配置属性】-》【常规】配置类型—动态库(.dll)


3、简单写点代码
3.1 添加头文件(.h)
头文件 AddOperate.h。

#pragma once
extern "C" _declspec(dllexport) int Sum(int a, int b);
class AddOperate
{
public:
};
1
2
3
4
5
6
3.1 添加源文件(.cpp)
源文件 AddOperate.cpp。

#include "AddOperate.h"
#include "iostream"
using namespace std;

int Sum(int a, int b)
{
if (a - (int)a != 0 || b - (int)b != 0) {
cout << "请输入整数" << endl;
return -1;
}
return a + b;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
4、右键项目点击生成即可生成DLL文件
在项目的Debug目录下即可找到生成的DLL文件

二、将Dll库在Unity工程中调用
1、创建一个Unity工程:
2、新建一个文件夹命名为Plugins:
3、将之前生成的动态链接库放到Plugins文件夹下,如下图所示:


4、新建一个Test.cs测试脚本调用C++代码:
下面展示一些 Test.cs。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using UnityEngine;
public class Test : MonoBehaviour
{

void Start()
{
Add(3, 4);
}

[DllImport("CPPDll2.dll", CallingConvention = CallingConvention.Cdecl)]
extern static int Sum(int a, int b);
public void Add(int a,int b)
{
UnityEngine.Debug.Log("调用C++代码计算a + b的结果为" + Sum(a,b));

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
运行结果:

————————————————
版权声明:本文为CSDN博主「辉哥威武」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_51456342/article/details/125693678

posted on 2022-11-29 09:19  okgogo2000  阅读(339)  评论(0编辑  收藏  举报