【发布时间】:2016-10-06 09:15:15
【问题描述】:
环境:
Windows 10 x64
Visual Studio 2008(是的,我知道)
尝试使用 gstreamer 1.0 构建一个非常简单的 x64 C++ 应用程序。管道在调试模式下工作得很好(甚至将图像写入磁盘),但是一旦调用 any gstreamer 函数,程序就会在 release 模式下崩溃。我为发布版本收集了以下证据:
- 在 Visual Studio 中的调试显示所需的 gstreamer/gthread 库未在“模块”选项卡中加载
- 通过移动/重命名包含目录 (C:/gstreamer/x64_86/bin) 来中断 gstreamer/gthread 库的路径在发布模式下无效。如果我在调试模式下尝试此操作,则应用程序会在运行时抱怨它找不到所需的 DLL。
- 在发布程序上运行 dumpbin /dependents 表明存在对 gstreamer/gthread 的依赖。调试版本也是如此。
- 从命令行而不是 VS 运行应用程序会产生相同的结果(崩溃)
我注意到 Win10 更智能,如果在运行时缺少多个 DLL(而不仅仅是第一个),它会警告你,但在这里我很困惑为什么它甚至没有加载它们,也没有警告我它们'重新失踪。我还能用什么来调试这个问题?
【问题讨论】:
-
您可以尝试使用进程监视器来查看进程在寻找什么以及在哪里寻找。 technet.microsoft.com/en-us/sysinternals/processmonitor
标签: c++ visual-studio dll visual-studio-2008