Unity3D 调用C++的DLL的代码

Unity3D 调用C++的DLL的代码## 标题

参考文献:
https://blog.csdn.net/penguin_whl/article/details/17616659#commentBox
我使用的是 vs2017生成的DLL
一、VS2017新建动态链接库项目

  1. 使用vs2017创建一个 名为 Unity-DLL的动态链接库
    在这里插入图片描述
  2. VS2017自动生成以下文件:
    在这里插入图片描述
  3. 添加TestDll.h, 并将Unity-DLL.cpp改为TestDll.cpp文件
    TestDll.h中加入如下代码:
    #pragma once
    #ifndef TEST_DLL_H
    #define TEST_DLL_H
    #endif

#if defined (EXPORTBUILD)

define _DLLExport __declspec (dllexport)

else

define _DLLExport __declspec (dllimport)

#endif

extern “C” int _DLLExport add(int x, int y);

_DLLExport class TestDll
{
public:
TestDll(void);
~TestDll(void);
};

TestDll.cpp中输入如下代码:
#define EXPORTBUILD

#include “TestDll.h”

int add(int x, int y )
{
return x + y;
}

TestDll::TestDll(void)
{
}

TestDll::~TestDll(void)
{
}

  1. 环境配置设置为Debug x64
    在这里插入图片描述

  2. 生成→生成解决方案
    在这里插入图片描述

  3. 生成:成功1个;
    在这里插入图片描述

  4. 在E:\4-Unity\DLL\Unity-DLL\x64\Debug中有生成的Unity-DLL.dll
    在这里插入图片描述
    二、Unity3D 调用.dll

  5. Unity3D 新建一个项目
    在这里插入图片描述

  6. 把生成的Unity-DLL拖到Unity的Asset–>Plugins目录(没有就创造一个)
    在这里插入图片描述

  7. 在Assets右侧右键单击→Create→C# Script,新建一个C#文件,假设命名为UnityTestDll
    在这里插入图片描述
    在这里插入图片描述

  8. 双击UnityTestDll,用VS2017打开
    在这里插入图片描述
    在UnityTestDll.cs中输入代码:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System.Runtime.InteropServices;

public class UnityTestDll : MonoBehaviour
{

[DllImport("Unity-DLL")]
private static extern int add(int x, int y);

int i = add(5, 7);

// Use this for initialization
void Start()
{

}

// Update is called once per frame
void Update()
{

}

void OnGUI()
{
    GUI.Button(new Rect(1, 1, 200, 100), "this dll i = 5+7, i is" + i);
}

}

保存关闭。

  1. 回到Unity3D,将UnityTestDll拖到Main Camera里面,或者新建一个对象,如Cube,将UnityTestDll拖到其里面。
    在这里插入图片描述
    在右侧Inspector面板最下面有我们刚刚加入的Script。
    在这里插入图片描述
    13.点击运行
    在这里插入图片描述
    运行Unity显示结果
    在这里插入图片描述
    调用成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值