C++ & VS2015:未解决的外部和命名空间问题(可能由 openCV 引起)

C++ & VS2015: Problems with unresolved externals and namespaces (maybe caused by openCV)

大家好,

我真的是 Whosebug 的新手,尽管当我真的被困住时,我经常会找到很好的和鼓舞人心的答案。这个我找不到任何东西,所以我 post 它。

简短介绍:我在2010年自学了c++,然后转为VB、C#和Java。我完全错过了整个托管系统,当事情不像以前那样工作时,我真的很困惑。

问题:我的应用程序正在使用 openCV,并且我已经成功构建了工作。目前,我尝试以 windows 形式 picturbox 显示图片,同时使用 openCV 对其进行操作。

包括结构(一般):

main.cpp 包括 main.h

main.h 包括 打开简历 细绳 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 {...}

我得到:

Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol "extern "C" struct HBITMAP__ * cdecl CreateBitmap(int,int,unsigned int,unsigned int,void const *)" (?CreateBitmap@@$$J0YAPEAUHBITMAP@@HHIIPEBX@Z) referenced in function "struct HBITMAP__ * cdecl get_srcImg(void)" (?get_srcImg@@$$FYAPEAUHBITMAP@@XZ) Path_recognition

而且我不知道怎么解决。如果我删除 createBitmap 函数,一切正常。问题是我需要在 pictureBox 和 openCV 函数之间转换图片。我之前有未解决的外部问题并通过调整包含层次结构并删除除 main.cpp.

之外的所有 cpp 文件来修复它

希望你能帮助我。谢谢。

你应该link到Gdi32.lib

#pragma comment(lib, "Gdi32.lib")

这应该可以解决您的问题