将控制台应用程序更改为Windows应用程序后fopen失败

时间:2011-09-08 17:58:20

标签: c++ windows visual-studio winapi opencv

我在Windows XP Professional上使用OpenCV 2.3.1和Visual Studio 10(终极),我无法打开级联文件。

相关代码如下:

String face_cascade_name = "haarcascade_frontalface_alt.xml";

CascadeClassifier face_cascade;

if( !face_cascade.load( face_cascade_name ) ){ message(TEXT("--(!)Error loading face\n"));

我确保使用的当前目录是正确的 GetCurrentDirectory()函数和xml文件包含在该目录中。

有趣的是,当我编译并运行它时,程序正常工作 控制台模式但我在运行它时收到错误“加载错误” Win32模式(无控制台)。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

根据OpenCV文档,CascadeClassification对象有一个带有以下原型的加载方法:

bool CascadeClassifier::load(const string& filename)

但你正在喂它String。它从您的注释中看起来就像它只是将指针值附加到目录字符串。尝试给它正确的参数类型。即:

string face_cascade_name("haarcascade_frontalface_alt.xml");
if( !face_cascade.load(face_cascade_name) { ... }