unity 调用 .dll 或 .so时遇到的问题
1、32位的 .dll 无法在64位的unity编辑器下运行。
System.DllNotFoundException: xxx , 64位的程序运行32位的dll是会报这种错
2、Failed to load 'Assets/Plugins/xxx.dll', expected x64 architecture, but was x86 architecture. You must recompile your plugin for x64 architecture.
将CPU选择.dll对应的CPU
3、System.EntryPointNotFoundException:Unable to find an entry point
原因就是:c++源代码中的函数在编译成DLL后,函数的名称就发生了改变:会在函数的前后产生一些字符。所以找不到方法的入口点。
[DllImport(dllName, EntryPoint = "?Free@@YAHXZ")]private static extern int Free();
Free的名字编译为dll时,变成了 ?Free@@YAHXZ ,猜想可能的原因是直接写的C++接口,而不是C接口
即,可能是没有通过 extern "C" int _DLLExport Free(); 的形式封装。
也可再强制一下编码格式 CharSet = CharSet.Unicode
即,
[DllImport(dllName, EntryPoint = "?Free@@YAHXZ",CharSet = CharSet.Unicode)]private static extern int Free();
附:eXeScope是查看 dll、exe等编译后的名字的小工具,很好用,下载地址:https://download.csdn.net/download/jasonczy/10657046
在导出里就可以看到对应的名字了。
转载于:https://www.cnblogs.com/Jason-c/p/9619954.html
unity 调用 .dll 或 .so时遇到的问题相关推荐
- 使用vs调用DLL在运行时调用的方法,使用delph调用dll
运行时调用: 1,将*.lib放在和32位debug,release和x64相同的文件夹下,将*.dll放在对应的debug或者release文件夹下: 2,在调用的文件中编写:在声明处编写 typ ...
- dll放在unity哪个文件夹下_unity中调用dll文件总结
unity中调用dll文件总结 根据收集的资料,对unity中调用dll文件进行总结,目前常用的两种,在给出vs中封装dll文件的步骤. 一.调用c#中的dll文件 1.1封装dll文件 首先新建一个 ...
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
在上一篇blog(工具(Tray Friend):将任何程序,最小化到系统托盘 )中. 使用C#调用了很多非托管的C++代码. 现在就把"C# 调用Dll中非托管C++代码时,函数参数的类型 ...
- Unity调用动态链接库dll和so
[001]Unity调用动态链接库dll和so ApolloAR https://www.jianshu.com/p/f37bb72979a1 一.PC平台 (注:环境 VS2017+Unity20 ...
- 调用dll时出现“Unhandled exception 堆已损坏(heap corruption)“异常解决方法
转自:http://blog.sina.com.cn/s/blog_668aae780101iou9.html http://yaogangshi.iteye.com/blog/1001690 htt ...
- LabVIEW调用DLL时出现异常0xc0000005代码
LabVIEW调用DLL时出现异常0xc0000005代码 当调用本地DLL时,LabVIEW崩溃,并且收到一条错误消息,说明发生了内存访问冲突(异常代码:0xc0000005). 将LabVIEW版 ...
- matlab 查看dll的函数参数类型,MATLAB调用dll文件中的库函数时的变量类型匹配问题?...
我用MATLAB调用dll来进行USB数据采集运行 libfunctions USBAD -full 得到: Functions in library USBAD: [lib.pointer, vo ...
- Unity调用Window提示框Yes/No(英文提示窗)
Unity调用Windows弹提示框 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar - ...
- C#创建和调用DLL
一.写在前面 C# 语言是一种简单但功能强大的编程语言,用于编写企业应用程序. C# 语言从C和 C++语言演化而来,在语句.表达式和运算符方面使用了许多 C++ 功能. C# 语言在类型安全性.版本 ...
最新文章
- unity 公用的方法库
- T-SQL 之 多表联合更新
- 个人项目耗时对比记录表
- Guava 是个风火轮之基础工具(4)
- 抖音起诉腾讯垄断 要求停止封禁并索赔9000万元
- 【更新汇总】FastReport系列更新|附下载
- UVA516 POJ1365 LA5533 ZOJ1261 Prime Land【欧拉筛法】
- 华为FusionSphere虚拟化解决方案介绍
- 36令牌环网的基本原理
- Linux必学书籍!五本强烈推荐,你读过几本?
- Essential Netty in Action 《Netty 实战(精髓)》
- 单片机课程设计八音盒
- 干货丨自学成才秘籍!机器学习深度学习经典资料汇总(一)
- 2应用层 - P2P应用
- 35年老程序员个人谈:C语言时代行将落幕
- 更换oracle nls,oracle_更改数据库字符集 (NLS_CHARACTERSET)
- ssm在线教学质量评价系统毕业设计源码141550
- 怎么把视频内存压缩小?视频内存过大怎么压缩?
- 泰坦尼克号入门学习(思维导图)
- 哈佛职场情商课读书笔记
热门文章
- leetcode(2)---两数相加
- 合并K个排序链表—leetcode23
- iOS 真机调试包集合 包含 iOS 12.4 不断更新
- 浅谈C/C++中的typedef和#define
- 提高效能 自我关怀的六个习惯
- 查看linux显示文件大小,Linux下查看占用最大的文件和文件夹大小
- 阿里云centos mysql_阿里云ECS服务器CentOS7上安装MySql服务-阿里云开发者社区
- [NOTE] RESTful架构
- 3.2 python实战_线性回归的梯度下降法
- python爬虫之urllib库详解