Относительные пути относятся к текущему каталогу процесса.Если он работает при использовании полного пути, но не работает при использовании относительного пути, тогда, очевидно, ваш относительный путь не ведет туда, куда он должен вести.Скорее всего, потому что текущий каталог процесса, который должен обращаться к этому файлу, не тот, каким он должен быть.
Поскольку мы говорим о DLL здесь, я предполагаю, что проблема заключается в том, что при запуске программы, которая на самом делес использованием DLL эта программа запускается из другого места, отличного от того, в котором находится файл проекта DLL. Скорее всего, потому что проект находится в другом каталоге, чем проект DLL.Visual Studio по умолчанию будет использовать каталог, в котором находится файл проекта, в качестве рабочего каталога для процесса.Вы можете изменить рабочий каталог, который Visual Studio будет использовать в свойствах проекта в разделе «Отладка».Скорее всего, вы захотите, чтобы ваши спрайты располагались относительно приложения, которое их использует, а не какой-либо библиотеки DLL, которую использует приложение.Если эти спрайты на самом деле привязаны к библиотеке и необходимы для функционирования библиотеки, с другой стороны, вы можете рассмотреть возможность встраивания файлов в библиотеку, например, как resources или как минимум местоэти файлы относятся к библиотеке и получают к ним доступ в зависимости от расположения библиотеки DLL, а не от текущего каталога процесса, использующего библиотеку DLL.Чтобы узнать путь к вашей DLL, см. Ответ, связанный в ответе пользователя user2176127…