0

我正在使用一个 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

4

2 回答 2

1

检查 dll 中的依赖项。我使用depends.exe依赖walker,它曾经与Visual C++捆绑在一起,但MS不再提供它。可以单独下载:http: //www.dependencywalker.com/

于 2010-12-16T23:21:12.953 回答
0

您可能错过了使用您的 DLL 的客户端上的 MS C++ 运行时。如果您在 Visual Studio 中构建它,则需要在客户端上安装 CRT 和 C++ RT。Dependency Walker 肯定会检测到它。

干杯。

于 2011-03-16T11:50:25.427 回答