草庐IT

VC_runtime

全部标签

VC++中使用OpenCV进行颜色检测

VC++中使用OpenCV进行颜色检测在VC++中使用OpenCV进行颜色检测非常简单,首选读取一张彩色图像,并调用函数cvtColor(img,imgHSV,COLOR_BGR2HSV);函数将原图img转换成HSV图像imgHSV,再设置好HSV三个分量的上限和下限值,调用inRange函数inRange(imgHSV,lower,upper,mask);将HSV色彩图像转换成掩码图,掩码图中只有黑白二值图像,从而达到颜色检测的目的。颜色检测通常可以用于物体检测和跟踪中,尤其在不同的图像和物体中根据特定的颜色去筛选出某个物体。RGB色彩空间和HSV色彩空间RGB色彩空间是一种被广泛接受的色

c++ - VC++11 映射和多映射迭代器(重载)C2535

我正在玩新的VS2012,我可能对新的C++11有疑问。当我在项目设置中将平台工具集设置为VS2010(v100)时,这段代码完美运行。.h:typedefstd::multimapSizeMap;typedefstd::mapOffsetMap;private:inlinevoid_RemoveBlockL(SizeMap::iteratorsizeI);inlinevoid_RemoveBlockL(OffsetMap::iteratoroffsetI);.cpp:inlinevoidFoo::_RemoveBlockL(SizeMap::iteratorsizeI){//impe

c++ - VC++ 和 GCC 下 boost::condition_variable 的不同行为

在我的计算机上,在Windows7上运行,以下代码在带有Boost1.53的VisualC++2010中编译,输出notimeoutelapsedtime(ms):1000使用GCC4.8编译的相同代码(onlinelink)输出timeoutelapsedtime(ms):1000我的意见是VC++输出不正确,应该是timeout。有没有人在VC++中有相同的输出(即notimeout)?如果是,那么它是否是boost::condition_variable的Win32实现中的错误?代码是#include#includeintmain(void){boost::condition_v

c++ - VC++ 中的文字类型

我知道标准如下:以0开头的整数被解释为八进制。以0x或0X开头的整数被解释为十六进制。整数文字的类型取决于它的值和符号:默认情况下,小数是有符号的,并且具有适合该值的最小类型int、long、longlong。十六进制和八进制可以是有符号的或无符号的,并且具有适合字面值的最小类型int、unsignedint、long、unsignedlong、longlong、unsignedlonglong。没有short类型的文字,但这可以被后缀覆盖。但是VC++呢?!它似乎将十进制、八进制和十六进制视为相同,并且无符号类型也允许用于小数。类似于下面的代码:cout给出:unsignedlong

c++ - 解决 VC++12 中的模板特化错误?

我有一些为Clang3.2编写的代码,我正试图将其移植到VC++12中运行。Clang3.2+和GCC4.8没有问题,但VC++12有问题。这是产生问题的最小片段:templateclassfoo{};templateintReturnsN(){returnN;}templateclassbar{typedeffoo>fooN;};现在我很确定这是一个编译器错误(但如果不是,请告诉我!)给出的错误是:'specialization':cannotconvertfrom'int(__cdecl*)(void)'to'int(__cdecl*)(void)'那么有人知道一个体面的工作吗?编

c++ - VC++ 中的动态数组大小和动态数组分配器

在编写自己的小型发现程序以弄清楚VisualC++如何为动态数组分配内存时,我有点困惑。我必须指出,我从未见过描述任何C++实现的new[]/delete[]运算符的这个问题的技术文档。一开始我以为new[]和delete[]如果解释成简单的C的话就是类似下面的东西:voidfake_int_ctor(int_this){printf("bornswith0x%08Xintheheap\n",_this);}voidfake_int_dtor(int_this){printf("dieswith%d\n",_this);}void*new_array(unsignedintsingle

c++ - std::runtime_error 子类的 "call to deleted constructor of"编译器错误

我从std::runtime_error派生了一个异常类,以便添加对异常流的支持。我收到一个奇怪的编译器错误输出,我不确定如何解决?clang++-std=c++11-stdlib=libc++-g-Wall-I../-I/usr/local/includeMain.cpp-cMain.cpp:43:19:error:calltodeletedconstructorof'EarthException'throwEarthException(__FILE__,__LINE__)^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~../EarthExce

c++ - C++ 中的奇怪编译器错误(VC 编译器)

对于这段代码,#includeintmain(){floatx=1.5f;floaty=0.0f;/*line6*/y=pow(x,6)*235809835.41-pow(x,5)*2110439254.2+pow(x,4)*7869448124.8-pow(x,3)*15648965509+pow(x,2)*17503313074-(x)*10440563329+2594694745‏;//error/*line7*/y=pow(x,6)*235809835.41-pow(x,5)*2110439254.2+pow(x,4)*7869448124.8-pow(x,3)*1564896

c++ - 如何指示 VC++ 编译器不内联常量?

我的C++程序中有以下全局常量:constintK=123456;当我编译程序时,生成的可执行文件在所有使用该值的地方(数十次)都包含文字值123456。但是,如果我删除const限定符,值123456在整个可执行文件中只出现一次(在.data部分).这是我正在寻找的结果。我希望值123456只出现一次,以便只需使用十六进制编辑器编辑.exe文件即可更改它。但是,我不想删除const限定符,因为我希望编译器防止我不小心修改源代码中的常量。是否可以指示编译器以某种方式不内联所述常量的值?我需要这样做的原因是,可执行文件很容易被负责“破解”示例程序以改变其行为的学生修改。对于没有经验的人来

c++ - Visual Studio : How to specify different runtime libraries for the linker?(/MTd、MDd 等)

我正在链接到VS2008中的几个库。如果我对链接器的了解是正确的,MTd用于静态链接而MDd用于动态链接(到DLL)。我的目标是静态链接一些库和动态链接其他库。项目选项似乎只有一个设置适用于链接器输入中的所有库。我该怎么做? 最佳答案 在您设置项目后,您的项目将获得一个合理的C运行时库默认值,具体取决于您如何回答新建项目向导的提示。您可以按如下方式检查和更改(如果需要):在解决方案资源管理器中右键单击相关项目,选择属性查看配置属性、C/C++、代码生成、运行时库。您可以根据需要链接其他库,您只需在“链接器”、“输入”、“附加依赖项”