Привет, я пытаюсь создать графический интерфейс для программного обеспечения для сравнения изображений. Идея состоит в том, чтобы выбрать картинку с OPENFILENAME, а затем получить свой адрес с помощью inn.lpstrFile, затем создать гистограмму для этого изображения. Поэтому я использую:Как сохранить ofn.lpstrFile для правильной строки?
return(ofn.lpstrFile);
Я могу COUT адрес или записать его в файл .xml и адрес правильный, но когда я пытаюсь сделать гистограмму это дает мне все нули. Поведение, подобное адресу, было неверным.
Любые идеи?
мой код:
string path=browse(); //getting the string from ofn.lpstrFile
path.c_str();
replace(path.begin(), path.end(), '\\', '/'); //converting backslash to slash also may be the problem
HistCreation(path,root_dir);
и
void HistCreation(string path,string root_dir) {
Mat img;
img = imread(path); // here if i manually enter the address everything works fine, if I insert the path then loads empty image
.
.
.
Я также попытался
char * cstr = new char[path.length() + 1];
std::strcpy(cstr, path.c_str());
Не работает либо
Используйте 'std :: wstring' для возврата строк. Возвращающиеся указатели - плохая идея, если вы не знаете, что делаете. –
Вы не пытаетесь сделать гистограмму * имени файла *, не так ли? – molbdnilo
Спасибо за ответ !. @BarmakShemirani Я попытался {wstring path = ofn.lpstrFile}, но он говорит: нет подходящего конструктора для преобразования из LPSTR в строку, wchar, char, wchar_t вы можете быть более конкретным, пожалуйста? –