Домашняя папка пользователя Windows в C (MinGW) - PullRequest
2 голосов
/ 18 февраля 2011

Я пытаюсь портировать приложение, написанное на C, из linux в windows.

На данный момент я закончил исправление «жестких» частей, таких как , отсутствующих функций posix и т. П.

Приложение теперь компилируется, связывается и работает в Windows (за исключением функции fork (), которая позже будет заменена служебным кодом Windows).

Единственная проблема, с которой я сейчас сталкиваюсь, заключается в том, что в оболочке MSYS все это работает (это отображает пути Unix для меня).

За пределами оболочки MSYS он не будет работать, поскольку ~ недоступен.

Я ищу лучший способ установить дом пользователя windows в моем файле #ifdef.

Я где-то читал о %USERPROFILE%, но это не похоже на работу .

Ответы [ 2 ]

2 голосов
/ 18 февраля 2011

Используйте SHGetKnownFolderPath (Vista +) или SHGetFolderPath в зависимости от версии Windows.

2 голосов
/ 18 февраля 2011

Я думаю, вы должны использовать API SHGetFolderLocation: http://msdn.microsoft.com/en-us/library/bb762180%28VS.85%29.aspx ну, не достаточно, вы должны даже получить идентификатор папки пользователя, но, начиная с расположенной выше папки с документом, вы должны иметь все, что вам нужно. Это должно работать на любой версии Windows.

...