DLL未找到异常
我正在使用一个 DLL,它是一个名为 Unity3d 的游戏引擎的插件。我在 Windows 7 64 位旗舰版上的 Visual C++ Express 2010 中创建了 DLL。 DLL 在最初创建它的计算机上正常运行。
问题在于该 DLL 无法在另一台计算机上的 Unity3d 编辑器中运行,并给出错误,该错误基本上表明该 DLL 丢失了一些依赖项。目标计算机正在运行 Windows 7 Home 64 位(如果相关)
Dependency Walker 的错误日志结果:
错误:并排配置信息 “c:\users\dewayne\desktop\shared\vrpnplugin\unityplugin\build\release\OPTITRACKPLUGIN.DLL” 包含错误。该应用程序无法启动,因为 并行配置不正确。请参阅申请表 事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息 (14001)。
错误:由于隐式依赖模块中缺少导出函数,至少有一个模块存在未解析的导入。
错误:发现具有不同 CPU 类型的模块。
警告:至少未找到一个延迟加载依赖模块。
警告:由于延迟加载相关模块中缺少导出函数,至少有一个模块存在未解析的导入。
Visual C++ Express 2010 项目和解决方案文件可以在此处。该 zip 大小为 79MB,还包含其依赖项。
有问题的 DLL 是 OptiTrackPlugin.dll
I am using a DLL that is a plugin for a game engine called Unity3d. I created the DLL in Visual C++ Express 2010 on windows 7 64 bit Ultimate Edition. The DLL functions properly on the machine that it was originally created on.
The problem is that the DLL is not functioning in the Unity3d Editor on another machine and giving an error that basically states that the DLL is missing some of its dependencies. The target machine is running Windows 7 Home 64 bit (if this is relevant)
Results from the error log of Dependency Walker:
Error: The Side-by-Side configuration information for
"c:\users\dewayne\desktop\shared\vrpnplugin\unityplugin\build\release\OPTITRACKPLUGIN.DLL"
contains errors. The application has failed to start because its
side-by-side configuration is incorrect. Please see the application
event log or use the command-line sxstrace.exe tool for more detail
(14001).
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
The Visual C++ Express 2010 project and solution file can be found here. The zip is 79MB and also contains its dependencies.
The DLL in question is OptiTrackPlugin.dll
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
检查 dll 中的依赖关系。我使用depends.exe dependency walker,它曾经与Visual C++捆绑在一起,但MS不再提供它。您可以单独下载:http://www.dependencywalker.com/
Check dependencies in your dll. I use depends.exe dependency walker, it used to be bundled with Visual C++, but MS no longer provides it. You can download it separately: http://www.dependencywalker.com/
您可能错过了使用 DLL 的客户端上的 MS C++ 运行时。
如果您在 Visual Studio 中构建了它,则需要在客户端上安装 CRT 和 C++ RT。 Dependency Walker 肯定会检测到它。
干杯。
Probably you missed the MS C++ Runtime on the client that's using your DLL.
If you've builded it in visual studio, you need the CRT and C++ RT installed on your clients. Dependency Walker surely will detect it.
Cheers.