在XP上部署ffmpeg流应用程序时出现strncpy_s错误

时间:2013-07-15 08:59:51

标签: dll ffmpeg windows-xp mingw32

我正在尝试部署一个使用ffmpeg将相机输出流式传输到XP机器的应用程序。该应用程序使用gcc mingw32编译,并在Windows 8上运行良好。但在Windows XP上,我收到以下错误:

The procedure entry point strncpy_s could not be located in the 
dynamic link library msvcrt.dll

GCC命令,不包括路径:

g++ -o mingw\streamer.exe src\testffmpeg.o -lavformat -lavutil -lavcodec -lFlyCapture2_C_v100

Dependency walker显示以下内容: Depedency Walker

如何解决这个strncpy_s问题?似乎ffmpeg使用这个函数是msvcrt。我使用了他们提供的windows二进制文件。我宁愿不必自己编译库,因为它有很多依赖项。

2 个答案:

答案 0 :(得分:2)

虽然不是通用的解决方案,但我使用旧版本的ffmpeg解决了这个问题。以下版本是msvcr.dll

中不需要strncpy_s的最新版本
  • 的ffmpeg-20130706-GIT-63d7684-Win32的共享
  • 的ffmpeg-20130706-GIT-63d7684-的win32-dev的

this forum thread

中所述

答案 1 :(得分:0)

使用ffmpeg-20130706会起作用,因为它不使用strncpy_s符号而不是运行时库中包含的strncpy。除非你在ffmpeg中使用的符号发生了变化,否则你应该可以在两周之前更换那些符号的dll,否则只需重新编译旧的依赖项。