Поскольку вы упоминаете "DLL", я предполагаю, что вы используете MS Windows.Нахождение файла там из DLL, и независимо от вошедшего в систему пользователя является ограниченным элементом.Лучший способ - сохранить файл по пути, собранному из переменной окружения ALLUSERSPROFILE
.Это единственное местоположение, равное всем пользователям, и где все пользователи обычно имеют доступ для записи.Данные ваших приложений должны находиться в частном подкаталоге с именем вроде или .Наберите
echo %ALLUSERSPROFILE%
в командной строке Windows, чтобы узнать фактическое местоположение на машине.
Сохраните ваши данные в ie:
%ALLUSERSPROFILE%\MyApp\
Ваша dllзатем запросите местоположение ALLUSERSPROFILE, используя getenv:
char *allUsersData = getenv("ALLUSERSPROFILE");