Unity3D DllNotFoundException/System.DllNotFoundException
2015-12-27 13:51
537 查看
Unity System.DllNotFoundException
Unity Fallback handler could not load library D:/91yGame/SparrowCD_Data/Mono/.\D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity3D Fallback handler could not load library D:/91yGame/SparrowCD_Data/Mono/.\D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity System.DllNotFoundException: D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity3D System.DllNotFoundException: D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity DllNotFoundException: D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity3D DllNotFoundException: D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
笔者在开发完游戏后,在绝大部分的客户机都是正常运行的,但是某些玩家就是不能启动游戏。重新下载也一样。这很可能和系统环境有些关系了,引用dll都是放在plugins的。
通过日志发现 很多日志都是上面的内容,Fallback handler could not load library,游戏大厅c++通讯dll调用失败了。
通过分析,可以明确:
1:GAME3D.dll在大部分机器可以调用,说明DLL函数正确导出。
2:C#导入方法
[DllImport(@"GAME3D", EntryPoint = "SetCallbackTemp", CharSet = CharSet.Ansi)]
public extern static void CallGameSceneNew(DegOnGameSceneNew callBack);
在大部分机器也是ok的,函数调用也是对的。
3:GAME3D.dll依赖其他dll,而在unity规定的Plugins中找不到依赖dll。或者说某些客户端不能正常引用。
通过Depends查看,我们发现这个通讯dll依赖MFC90.dll MSVCR90.dll,MSVCP90.dll了。
在出现异常的机器上把这些dll复制到unity发现目录下的Plugins下。再次启动游戏,一切正常了,虚拟机上也正常了。
这个问题在虚拟机上很容易出现,对于引用dll的项目,多多细心。
Unity Fallback handler could not load library D:/91yGame/SparrowCD_Data/Mono/.\D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity3D Fallback handler could not load library D:/91yGame/SparrowCD_Data/Mono/.\D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity System.DllNotFoundException: D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity3D System.DllNotFoundException: D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity DllNotFoundException: D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
Unity3D DllNotFoundException: D:/91yGame/SparrowCD_Data/Plugins/GAME3D.dll
笔者在开发完游戏后,在绝大部分的客户机都是正常运行的,但是某些玩家就是不能启动游戏。重新下载也一样。这很可能和系统环境有些关系了,引用dll都是放在plugins的。
通过日志发现 很多日志都是上面的内容,Fallback handler could not load library,游戏大厅c++通讯dll调用失败了。
通过分析,可以明确:
1:GAME3D.dll在大部分机器可以调用,说明DLL函数正确导出。
2:C#导入方法
[DllImport(@"GAME3D", EntryPoint = "SetCallbackTemp", CharSet = CharSet.Ansi)]
public extern static void CallGameSceneNew(DegOnGameSceneNew callBack);
在大部分机器也是ok的,函数调用也是对的。
3:GAME3D.dll依赖其他dll,而在unity规定的Plugins中找不到依赖dll。或者说某些客户端不能正常引用。
通过Depends查看,我们发现这个通讯dll依赖MFC90.dll MSVCR90.dll,MSVCP90.dll了。
在出现异常的机器上把这些dll复制到unity发现目录下的Plugins下。再次启动游戏,一切正常了,虚拟机上也正常了。
这个问题在虚拟机上很容易出现,对于引用dll的项目,多多细心。
相关文章推荐
- Unity3D 使用C#指针unsafe
- NullReferenceException UnityEngine.Transform.get_localPosition
- Unity3D 调用模态对话框/Unity3D MessageBox
- Unity3D-微信-飞机大战-项目经过
- 【Unity Shaders】使用CgInclude让你的Shader模块化——Unity内置的CgInclude文件
- 关于Unity3D的编辑器崩溃时的线索定位
- UNITY 位移
- unity shader的固定管线(fixed function shader)
- [置顶] unity3d基于ugui的ui模块
- {Unity} Shader初步
- {Unity} 2D游戏,Canvas转世界坐标
- {Unity} Renderer SortingOrder的取值范围
- Unity -网格合并
- unity3d 如何判断一点是不是在一个相机的视锥内
- Unity3d ulua 环境搭建与所遇到的问题
- unity自带寻路Navmesh入门教程(一)
- KING_UNITY学习之鼠标点击地面控制人物移动
- 实例教程Unity3D单例模式(一)通经常使使用方法
- unity build设置固定分辨率不生效的问题
- Unity3d截图方法合集