Unity3d中调用C/C++封装的DLL

来源:互联网 发布:tj是什么意思网络用语 编辑:程序博客网 时间:2024/05/22 01:29

Step1:创建动态链接库(DLL)

1.  打开VS2013,创建一个Win32应用程序,命名为U3DDLL


创建Win32应用程序


点击下一步

2.  选择应用程序类型为DLL的空项目


创建DLL空项目

3.新建头文件,命名为U3DTestDLL.h,并添加如下代码


创建头文件

#ifndef_U3DTestDLL_H_

#define_U3DTestDLL_

#ifdefU3DDLL_EXPORTS

#defineEXPORTS_U3DDLL _declspec( dllexport )

#else

#defineEXPORTS_U3DDLL _declspec(dllimport)

#endif

extern"C" EXPORTS_U3DDLL int Add(int a, int b);

#endif

4. 新建源文件,命名为U3DTestDLL.cpp,并添加如下代码

#include"U3DTestDLL.h"

intAdd(int a, int b)

{

       return (a + b);

}

5. 生成动态链接库(DLL)


生成DLL

Step2:复制DLL到Unity工程中的Asset/Plugins文件夹中

打开U3DDLL项目文件,找到x64->Debug文件夹将U3DDLL.dll复制到Unity工程中的Asset/Plugins文件夹中。

Step3:调用DLL

1. 在Unity中添加test脚本文件


创建脚本

2. 添加using指令

using System.Runtime.InteropServices;  

3. 导入DLL

使用[DllImport("Dll名字")]指明要引用的DLL,然后声明要使用的DLL中的方法。

usingUnityEngine;

usingSystem.Collections;

usingSystem.Runtime.InteropServices; 

publicclass test : MonoBehaviour

{

    [DllImport("U3DDLL")]

    private static extern int Add(int x, inty);

    int i = Add(5, 7); 

    void OnGUI()

    {

        GUI.Button(new Rect(1, 1, 200, 100),i.ToString());

    } 

}

Step4:运行结果


运行结果

0 0