提问人:Sceen 提问时间:9/6/2016 最后编辑:Sceen 更新时间:9/6/2016 访问量:478
C++ & VS2015: 未解析的外部和命名空间问题(可能是由 openCV 引起的)[重复]
C++ & VS2015: Problems with unresolved externals and namespaces (maybe caused by openCV) [duplicate]
问:
各位社区成员,大家好,
我真的是 stackoverflow 的新手,尽管当我真的陷入困境时,我经常会找到伟大而鼓舞人心的答案。这个我找不到任何东西,所以我发布了它。
简介:我在 2010 年自学了 c++,然后改学了 VB、C# 和 Java。我完全错过了整个管理系统,当事情不像以前那样工作时,我真的很困惑。
问题:我的应用程序正在使用 openCV,并且我已经设法拥有工作构建。目前,我尝试在窗口窗体中显示图片,同时使用openCV对其进行操作。picturbox
包含结构(常规):
main.cpp 包括 main.h
main.h 包括 openCV的 字符串 msclr/marshal_cppstd.h 表单 1、表单 2、表单 3
form3.h 中出现的问题。form3.h的基本结构:
#pragma once
cv::Mat srcImg;
HBITMAP get_srcImg()
{
HBITMAP b = CreateBitmap(srcImg.cols, srcImg.rows, 1, 32, srcImg.data);
return b;
}
namespace ownProject{//this is all automatically generated by the designer
class form {...}
我得到:
严重性代码说明 项目文件行抑制状态 错误LNK2019未解析的外部符号“extern”C“结构HBITMAP__ * cdecl CreateBitmap(int,int,unsigned int,unsigned int,void const *)“ (?CreateBitmap@@$$J 0YAPEAUHBITMAP@@HHIIPEBX@Z) 在函数“struct HBITMAP__ * cdecl get_srcImg(void)”中引用 (?get_srcImg@@$$FYAPEAUHBITMAP@@XZ) Path_recognition
我不知道如何解决它。如果我删除该功能,一切正常。问题是我需要在 和 openCV 函数之间转换图片。我之前有未解决的外部问题,并通过调整包含层次结构并删除除 main.cpp 之外的所有 cpp 文件来修复它。createBitmap
pictureBox
我希望你能帮助我。谢谢。
答:
您应该链接到 Gdi32.lib
#pragma comment(lib, "Gdi32.lib")
这应该可以解决您的问题
评论
Bitmap^ b;
肯定不是 C++。这与您的问题完全无关。您的问题实际上只是什么是未定义的引用/未解析的外部符号错误以及如何修复它的重复?