Unity使用如何使用C++库

要想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来调用

  • 那么什么是extern "C" 呢

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

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

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

  • 如何在Unity中进行Import呢?

代码直接贴一下吧,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();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容