Unity使用如何使用C++库

2023-06-07  本文已影响0人  LazyBoy

要想unity调用c++库,那么就需要先创建一个c++的工程,其实官方有详细的说明,可以阅读这个文档https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170

重点划线

extern "C" MATHLIBRARY_API 这个前缀是将函数导出给C#,这样C#中可以通过DllImport来调用

原因是C++编译的时候会对函数改名,这个标记就是说明要用C的编译方式来编译,不要改名,因为C++中的重载在编译代码之后会修改名字,比如函数add(int a,int b)在编译后名字就是add_int_int了,所以如果不标记的话,dllImport就找不到这个函数

Tips: 静态函数是不支持extern "C" 的

当然这里提一句,如果你代码是用c写的,就不需要extern "C" 前缀了,只需要加extern就可以了

代码直接贴一下吧,dllImport你导出的那个文件名字,对了,dll在unity中的导入平台要设置好,

   [DllImport("dllfileName.dll")]
    public static extern int testCall();

编译Android平台
https://developer.android.com/studio/projects/add-native-code?hl=zh-cn

安卓下的导出依然是添加extern C
使用ndk编译不同平台的库
注意安卓dllimport的是so的文件名,不带扩展名哦

   [DllImport("libname")]
    public static extern int testCall();
上一篇下一篇

猜你喜欢

热点阅读