Unity3d 调用C++写的DLL

来源:互联网 发布:2016lol国服mac版本 编辑:程序博客网 时间:2024/05/02 16:42

  • 1、创建DLL
    • 打开VS2010,创建一个win32应用程序,选择创建一个DLL类型的空项目。

    • 新建一个头文件和一个源文件。
    • 在头文件中写入
      #if defined (EXPORTBUILD)  # define _DLLExport __declspec (dllexport)  # else  # define _DLLExport __declspec (dllimport)  #endif    extern "C"  int _DLLExport MyADD(int x,int y);  

    • 在源文件中定义方法的操作
      //宏定义  #define  EXPORTBUILD    //加载头文件  #include "DLL.h"    //设置函数  int _DLLExport MyADD(int x,int y)  {      return x+y;  }  
    • 传入两个参数会返回两个参数的和,然后编译这个项目,将生成的dll拷贝到Unity工程中的Asset/Plugins文件夹中

  • 2、调用DLL
    • 使用C#来调用DLL,首先创建一个C#脚本。添加using指令
      using System.Runtime.InteropServices;

    • 使用[DllImport("Dll名字")]指明要引用的DLL,然后声明要使用的DLL中的方法。
    • using UnityEngine;using System.Collections;using System.Runtime.InteropServices;public class test : MonoBehaviour {[DllImport("test")]private static extern int MyADD(int x,int y);int i = MyADD(5,7);void OnGUI(){GUI.Button(new Rect(1,1,200,100),i.ToString());}}