一、设置Dll输出。
两种方式:
- 第一:直接创建动态链接库工程
- 第二:创建的是可执行程序,在visual studio,右键项目->属性(由exe改成dll)
二、生成Dll
根据选项Release或Debug,运行完上面的生成解决方案后,会在工程目录下生成x64/Relese/xxx.dll。至此dll生成完成。
三、c++代码补充
注意:_declspec(dllexport)是必须在方法前面,否则c#会调用不到这个方法。
extern "C" 以c的方式去编译也是必要的
先创建DllForUnity.h头文件
#pragma once
#include<math.h>
#include<string.h>
#include<iostream>
#define _DllExport _declspec(dllexport) //使用宏定义缩写下
extern "C"
{
_DllExport float GetDistance(float x, float y);
}
再创建DllForUnity.cpp实现文件。
#include <DllForUnity.h>
float GetDistance(float x, float y)
{
return x+y;
}
四、C#调用
- 将打好的dll拷贝到Unity Plugins文件夹下
- 引入c++方法
[DllImport("RoboidS", EntryPoint = "GetDistance")] private static extern float GetDistance(float x, float y);
- 最后直接调用 GetDistance(1, 2);