Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CvCaptureFromFile(..)的源代码_C++_C_Opencv_Video Capture - Fatal编程技术网

C++ CvCaptureFromFile(..)的源代码

C++ CvCaptureFromFile(..)的源代码,c++,c,opencv,video-capture,C++,C,Opencv,Video Capture,我想使用CvCaptureFromFile(..)函数的源代码,因为我不想在我的项目中使用OpenCV库函数。所以我进入函数内部,按F10,F11,复制我需要的东西,并将它们转换成C代码。直到现在一切都很好 但是当我试图运行时,我在函数icvIntFFMPEG(void) 错误如下: 错误1错误LNK2019:未解析的外部符号 “uu declspec(dllimport)void*u stdcall GetProcAddress(struct HINSTANCE_uuu*字符常量*)” (\u

我想使用
CvCaptureFromFile(..)
函数的源代码,因为我不想在我的项目中使用OpenCV库函数。所以我进入函数内部,按F10,F11,复制我需要的东西,并将它们转换成C代码。直到现在一切都很好

但是当我试图运行时,我在函数
icvIntFFMPEG(void)

错误如下:

错误1
错误LNK2019:未解析的外部符号
“uu declspec(dllimport)void*u stdcall GetProcAddress(struct
HINSTANCE_uuu*字符常量*)”
(\uuu imp\uu?GetProcAddress@@YGPAXPAUHINSTANCE)__@@PBD@Z)引用于
函数“void\uu cdecl icvInitFFMPEG(void)”(?icvInitFFMPEG@@YAXXZ)

错误2
错误LNK2019:未解析的外部符号“struct HINSTANCE”__
*_ustdcall LoadLibrary(char const*)“(?LoadLibrary@@YGPAUHINSTANCE”__@@PBD@Z)在函数“void”中引用
__cdecl icvInitFFMPEG(void)”(?icvInitFFMPEG@@YAXXZ)

我复制了源代码中的所有内容。知道我哪里出错了吗?如何解决此错误

更新:如果我将头文件(我处理源代码的地方)包装在一个外部“C”中,类似这样-

extern "C" {
  #include "defination.h"
 }
然后第一个错误消失,loadLibrary的错误更改为

错误LNK2019:未解析的外部符号\uuu imp__LoadLibrary@4在函数_icvInitFFMPEG中引用


OpenCv使用ffmpeg,这是一个非常大的项目。ffmpeg在幕后使用了一些其他工具。您可能想使用ffmpeg,但从ffmpeg本身获取源代码是愚蠢的——您将花费数年时间来摆弄这些代码——真的

所以,决定一个视频输入库——不管是OpenCV、ffmpeg、Direct3D还是其他什么,然后使用它


不要固守“你不能使用外部库”的观念,因为你离不开它们。开发这样一个库需要几年的时间——我很确定您不想这样做。

好吧,似乎您对内核32.dll中的LoadLibrary()/GetProcAddress()函数的调用无法解析。您使用的IDE/项目类型是什么?除非在某个地方指定了/NODEFAULTLIB,否则默认情况下应该链接Kernel32.lib,至少在我记忆中是这样。您可以尝试将
#pragma comment(lib,“kernel32.lib”)
添加到复制代码的文件中,但如果没有有关设置的更多信息,则很难回答导致此问题的原因。

您复制了所需的内容,但没有复制所需的内容。。。你为什么不直接使用OpenCV而不是玩这些“游戏”?我不能使用OpenCV这就是我使用源代码的原因..谢谢你的帮助,但正如我的导师告诉我的,我不能使用外部库:(:(如果是这样的话,你知道我应该怎么做吗。)然后你可能还想写一个新的操作系统,一个编译器和设计一台计算机。你可能对要求理解错误。如果你在图像处理课程上工作,你为自己写算法是很自然的。但是视频阅读是另外一回事。你需要使用一个库就像你需要一个监视器、一台计算机和一个编译器一样。如果你的作业是写一个视频解码器,不要作弊。我没有作弊,我可以看到opencv或任何其他库的源代码。我不能直接使用它们。无论如何,谢谢你的回答。嗨,谢谢你的回复。我使用的是VS 2010,我已经链接了Ke附加依赖项中的rnel32.lib,以及添加#pragma注释(lib,“kernel32.lib”),但仍然会收到相同的错误。