Not*_*yne 2 c++ string debugging opencv
我一直在使用openCV开发一些计算机视觉工具,但每次我将一个字符串传递给openCV函数时,字符都会被标记到开头.起初这很烦人,但现在我正在尝试使用openCV的fileStorage工具,而且这些字符使我的文件名不可读.
注意:只有在将字符串传递给新的c ++样式的openCV函数时才会添加字符.如果我使用旧的C风格函数,字符串就会很好.
例如:我输入:
namedWindow("CBImage", 1);
.
.
.
imshow("CBImage", Frame);
Run Code Online (Sandbox Code Playgroud)
但是窗口标题显示的是ÌBBImage
我认为问题不一定是openCV特有的; 我认为它通常与字符串使用有关.查看此链接,编码器似乎遇到了类似的问题. http://www.sfml-dev.org/forum/viewtopic.php?t=1257&sid=5cfa50b780e47685d1c03296adffa8ed
有什么想法吗?谢谢
感谢大家的帮助.KennyTM的原始建议确实解决了这个问题.我不得不用调试版本替换我的cv cvaux cvcore和highgui库(它们可能必须根据你运行的openCV版本来构建,检查你的openCV目录中的lib文件夹).
鉴于此ÌÌÌÌ = 0xCCCCCCCC
,似乎库不期望在字符串成员之前有一个4字节的成员,例如
// Provided.
struct something {
...
void* some_pointer; // uninitialized variables are filled with 0xCC in debug mode.
char the_actual_content[1234];
...
}
// But the library wants
struct something {
...
char the_actual_content[1234]; // now the 0xCCCCCCC is shifted into this string.
...
}
Run Code Online (Sandbox Code Playgroud)
你有没有尝试过链接中的建议?
不要混合调试和发布配置如果您处于调试模式,请使用"-d"后缀链接到库.