Как я могу ссылаться на расположение файла в C ?

#c #windows

Вопрос:

Я пытаюсь ссылаться на некоторые изображения, чтобы этот фрагмент кода мог работать на любом компьютере, а не только на моем собственном.

 pictureBox1->ImageLocation = "C:\Users\W10\Desktop\pacanelematii\cireasamtii.png"; 
 

Это небольшой проект на c , использующий Windows forms в visual studio. Не могу заставить ссылку работать.
Из того, что я понял, должно выглядеть что-то вроде «..Debugpacanelematiiportocalamatii.png»
или «..pacanelematiiportocalamatii.png», но ни то, ни другое не работает. Я думаю, что, как только путь к файлу будет указан в файле .exe, я смогу легко скопировать всю папку .exe и отправить приложение любому, кто захочет его опробовать. Я скопировал папку «pacanelematii» в «Отладку».

Комментарии:

1. ./ является текущим каталогом, ../ является родительским каталогом. ..Debug/ или ..pacanelematii/ это неверный путь.

Ответ №1:

При запуске вашей программы вы должны установить текущий рабочий каталог в папку, содержащую исполняемый файл. С помощью Win32 API вы бы сделали это так:

 wchar_t path[MAX_PATH];
GetModuleFileNameW(NULL, path, MAX_PATH);
PathCchRemoveFileSpec(path, MAX_PATH);
SetCurrentDirectory(path);
 

Затем убедитесь, что изображение помещено в каталог исполняемого файла, и просто используйте его относительный путь.
Например, вы можете поместить его в папку Images рядом с исполняемым файлом и использовать как Images/imagename.png .