Следующий фрагмент кода, кажется, интерпретирует косую черту в переданном имени файла по-разному, в зависимости от того, был ли он передан в качестве аргумента командной строки или жестко закодирован с помощью литерала.Если в качестве аргумента командной строки передается имя файла изображения C:\kimba.jpg
, оно работает нормально:
int main( int argc, char** argv )
{
IplImage* img = cvLoadImage(argv[1]);
//IplImage* img = cvLoadImage("C:\kimba.jpg", 1);
// ...
return 0;
}
Если, с другой стороны, я раскомментирую вторую строку и прокомментирую первую, то же имя файла вызываетисключение в этой строке.Я не знаю, как реализовано cvLoadImage()
, но кажется (согласно отладчику), что в обоих случаях один и тот же контент передается в функцию.Так почему же жестко заданное имя файла вызывает исключение, а не аргумент командной строки?