美文网首页
简单几步把C++编译动态链接库dll并在Unity中调用

简单几步把C++编译动态链接库dll并在Unity中调用

作者: CodeHunter | 来源:发表于2019-05-15 14:32 被阅读0次

最近项目需要编译C++的DLL并在unity中调用,所以简单整理了一下编译C++的步骤

如何把C++编译为DLL并调用?

首先通过VS创建一个空的C++项目,我用的是VS2017


创建空项目 选择空项目

在右边添加一个源文件,命名为test.cpp


添加一个test.cpp文件

定义一个关键字 ***这个名字可以自己定义 extern "C" __declspec(dllexport),他告诉这段代码是可以在dll中被其他调用的,如果你不想要被外部访问的方法就就不加 “__DllExport”,然后我就在里面写了一个简单的相加的方法。

#define _DllExport extern "C" __declspec(dllexport)
添加一个关键字,并定义一个简单的相加方法

选择64的架构,并进行“生成-生成解决方案”

image.png

编译跑成功了,可以看到生成了一个DLL,找到这个DLL,并把DLL复制到Unity的Plugins文件夹。


编译成功

新建一个test.cs的脚本,在DllImport引入Dll的名字,方法名一定要和C++的里面一样,把脚本挂在场景里,可以看到运行结果与预期一样。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;

public class test : MonoBehaviour {

    [DllImport("Project5")]
    static extern int Sum(int a, int b);


    private void Start()
    {
        var t = Sum(5, 6);
        Debug.Log(t);
    }

    // Update is called once per frame
    void Update () {
        
    }
}
运行结果

相关文章

网友评论

      本文标题:简单几步把C++编译动态链接库dll并在Unity中调用

      本文链接:https://www.haomeiwen.com/subject/rndpaqtx.html