где хранить файл .properties для использования в c ++ dll - PullRequest
0 голосов
/ 02 февраля 2010

Я создал файл .properties, который содержит несколько простых пар ключ = значение . Я попробовал это из примера консольного приложения c ++, используя импортированные классы Java, и я смог получить к нему доступ, без проблем.

Теперь я пытаюсь использовать его таким же образом из DLL C ++, которая вызывается другим (неуправляемым) проектом c ++.

По какой-то причине файл не доступен.

Возможно, мое местоположение файла неверно. Где мне его хранить?

В чем еще может быть проблема?

ТИА

1 Ответ

1 голос
/ 02 февраля 2010

Поскольку вы упоминаете "DLL", я предполагаю, что вы используете MS Windows.Нахождение файла там из DLL, и независимо от вошедшего в систему пользователя является ограниченным элементом.Лучший способ - сохранить файл по пути, собранному из переменной окружения ALLUSERSPROFILE.Это единственное местоположение, равное всем пользователям, и где все пользователи обычно имеют доступ для записи.Данные ваших приложений должны находиться в частном подкаталоге с именем вроде или .Наберите

echo %ALLUSERSPROFILE%

в командной строке Windows, чтобы узнать фактическое местоположение на машине.

Сохраните ваши данные в ie:

%ALLUSERSPROFILE%\MyApp\

Ваша dllзатем запросите местоположение ALLUSERSPROFILE, используя getenv:

char *allUsersData = getenv("ALLUSERSPROFILE");
...