最近做unity开发,需要引入自己写的c++dll,记录一下:

1.创建c++win32控制台应用程序程序,程序类型选择为dll,如果你的unity为5.x以上,就选用x64进行编译,生成你自己的dll

在创建dll工程中,记录一下自己遇到的一个问题吧,导出函数声明类似于 extern "C"  __declspec(dllexport) int DllTest(),由于我有很多这样的函数,所以每个这么写看起来繁琐,所以我可以声明成这样

extern "C" 

{

  int __stdcall DllTest();

  int __stdcall DllTest1();

}

然后写def文件导出,def文件写法如下

LIBRARY "MyDll"
EXPORTS
DllTest@1
DllTest1@2

需要注意一点是用def文件写导出的时候,用添加文件向导的方式添加,unity导入引用c++的dll

最好不要直接写一个普通的def文件,有可能无法正常导出,然后unity运行报EntryPointNotFoundException的错误,当时纠结了很久。

2.生成的dll拷贝到unity工程 plugins目录下面,我用的unity5.6,所以需要拷贝到plugins/x64目录下,没有就自己创建一个

3.c#调用dll函数,声明类似于下

    [DllImport("MyDll")]

    public static extern int DllTest()

    {

    }


相关文章:

  • 2021-05-28
  • 2022-12-23
  • 2021-08-12
  • 2021-12-10
  • 2022-01-08
  • 2021-07-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-18
  • 2022-12-23
  • 2021-05-02
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案