错误:序号139无法位于swscale-2.dll中

时间:2013-02-16 22:13:24

标签: c++ visual-studio-2010 ffmpeg

名义上是一个ffmpeg问题,但它可能是标准Windows库和版本的问题。 VS

运行Win 7,VS2010;我的程序使用ffmpeg库和dll所以我只是将ffmpeg库升级到ffmpeg-1.1.1 win 32 dev for libraries和win32-shared for dlls。

在调试模式下运行我的程序,运行正常。更改为发布模式,重新编译所有并尝试运行。我立即收到错误消息Ordinal 139无法在swscale-2.dll

中找到

为两次运行使用相同的dll [好吧,我将它们从Debug文件夹复制到Release文件夹。我在调试模式下运行时的两次。

任何线索?这个让我很难过。


所以我在比较调试和发布之间的属性页。

  • 都有多头调试集(c ++ / code geneeration)
  • 发布模式将Liner Optimization引用设置为Yes / OPT:REF,而debug没有任何内容;

==>将其设置为NO并且没有收到错误消息re ordinal 39 not found。

3 个答案:

答案 0 :(得分:0)

与使用错误的文件几乎没有什么不同。如果您自己构建它们,请确保:

  • 您使用FFmpeg build
  • 生成的正确DLL和LIB文件
  • 您的应用程序加载了正确的DLL,例如而不是位于由第三方软件安装的\ Windows \ system32中的那些

您还可以使用Dependency Walker来识别不匹配,并检查您尝试使用的swscale.dll是否确实具有相关的导出功能。

答案 1 :(得分:0)

不同的lib和dll的建议是错误的。重新编译库的建议是错误的,因为基本上ffmpeg使用一些类似Linux的构造,并且只能很难编译为windows,因此使用它们的lib和dll。

这是我只能以痛苦的方式找到的正确答案 - 不要删除它,因为它实际上是任何人遇到“Ordinal xxx无法找到”的错误的正确答案我yyyy.dll “

所以我在比较调试和发布之间的属性页。

都有多头调试集(c ++ / code geneeration) 发布模式将Liner Optimization引用设置为Yes / OPT:REF,而debug没有任何内容; ==>将其设置为NO并且没有收到错误消息re ordinal 39 not found。

答案 2 :(得分:0)

我在为windows编译的ffmpeg中遇到过这个问题。它总是dll / lib不匹配。即使我的主要exe链接到正确的ffmpeg库,我的项目中的一些dll或lib也没有使用新编译的ffmpeg库。因此,您可能已正确编译了调试依赖项,而不是您的发布版本。