【问题标题】:How to use opencv header in visual studio windows app如何在 Visual Studio Windows 应用程序中使用 opencv 标头
【发布时间】:2013-10-31 14:29:45
【问题描述】:

我在 Visual Studio 2010 C++ 控制台中完成了我的工作,但现在我正试图在 Visual Studio C++ 中将我的工作转换为 Windows 应用程序(制作它的界面)。为此,我必须添加一些必须在 Windows 窗体应用程序中手动添加的头文件,例如

它告诉我一些错误,比如

DetectRegions.h(10): error C2146: syntax error : missing ';' before identifier 'filename'
DetectRegions.h(10): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
DetectRegions.h(10): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
DetectRegions.h(11): error C2061: syntax error : identifier 'string'
DetectRegions.h(14): error C2143: syntax error : missing ';' before '<'
DetectRegions.h(14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
DetectRegions.h(14): error C2238: unexpected token(s) preceding ';'
DetectRegions.h(16): error C2143: syntax error : missing ';' before '<'
DetectRegions.h(16): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
DetectRegions.h(16): error C2238: unexpected token(s) preceding ';'
DetectRegions.h(17): error C2061: syntax error : identifier 'RotatedRect'
DetectRegions.h(18): error C2653: 'cv' : is not a class or namespace name
DetectRegions.h(18): error C2146: syntax error : missing ';' before identifier 'histeq'
DetectRegions.h(18): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
DetectRegions.h(18): error C2061: syntax error : identifier 'Mat'
DetectRegions.h(18): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
DetectRegions.h(18): warning C4183: 'histeq': missing return type; assumed to be a member function returning 'int'

Plate.hDetectRegions.h 相同

我在 Form1.h 中添加了opencv 的其他标题

#include "opencv2/features2d/features2d.hpp"
#include <opencv/highgui.h>
#include "opencv2/opencv.hpp" .......

【问题讨论】:

    标签: c++ winforms visual-studio-2010 visual-c++ opencv


    【解决方案1】:

    您在 DetectRegions.h 中使用了 std::string 和 std::vector,但不包括它们的标头

    #include <string>
    #include <vector>
    

    同样,如果您在那里使用 cv 标头,则需要在其中包含它们。

    【讨论】:

    • 为什么这些错误是针对DetectRegions.cpp DetectRegions.cpp(1): warning C4627: '#include "DetectRegions.h"': skipped when looking for precompiled header use Add directive to 'StdAfx.h' or rebuild precompiled header DetectRegions.cpp(214): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?
    • 您已在项目设置中启用了预编译头文件。这要求第一个 include 是每个 cpp 文件顶部的 #include "StdAfx.h"。添加它,它应该没问题。 (您粘贴的错误消息,有点过于冗长,确切地告诉了您)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 2011-06-05
    相关资源
    最近更新 更多