На самом деле, getenv
не является функцией Windows API. Эта функция предоставляется средой выполнения C. Если вы хотите продолжить работу с функцией времени выполнения C, тогда вместо использования getenv
следует использовать версию Unicode, _wgetenv
.
Функция Windows API, которую обертывают getenv
и _wgetenv
, равна GetEnvironmentVariable
. Вы можете в равной степени использовать эту функцию, но вы должны убедиться, что вы нацеливаете Unicode при сборке, или явно вызывать версию Unicode GetEnvironmentVariableW
.
Это отвечает на прямой вопрос, который вы задали. Однако также стоит отметить, что чтение переменной APPDATA
не является правильным способом получения этой информации. Вместо этого вы должны позвонить SHGetKnownFolderPath
, передавая FOLDERID_RoamingAppData
.