Unity3d 调用C++写的DLL

  • 1、创建DLL
    • 打开VS2010,创建一个win32应用程序,选择创建一个DLL类型的空项目。
    • Unity3d 调用C++写的DLL_第1张图片
    • 新建一个头文件和一个源文件。
    • 在头文件中写入
      #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());
      	}
      }


你可能感兴趣的:(C#,dll,unity3d)