Как перейти в каталог из текущего каталога с помощью GetPrivateProfileString () - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь прочитать данные аутентификации для моей программы из INI-файла, используя GetPrivateProfileString. Я хотел бы подняться на directory/Folder/File.ini), но не знаю, как это сделать

Я пытался GetFullPathName()

void ini {


std::string iniPath = "/Ice/Ice.ini";
    LPWSTR inipath = A2W_EX(iniPath.c_str(), iniPath.length());



    DWORD IniPath = std::strtoul(iniPath.c_str(), NULL, 16);


    std::string playerUsername;

    std::string playerPassword;

    TCHAR iniauthChar[32];



    playerUsername = GetPrivateProfileString(authheader, authuser, 0, iniauthChar, 256, inipath);
    playerPassword = GetPrivateProfileString(authheader, authpass, 0, iniauthChar, 256, inipath);



}

и вот мой INI-файл, расположенный в каталоге выше

[AUTH]
Username=
Password=

1 Ответ

0 голосов
/ 26 июня 2019

Вы должны использовать \\ вместо / для путей к каталогам в Windows.

#include <windows.h>
#include <iostream>

int main()
{
    LPWSTR fn = L"Ice\\Ice.ini";

    wchar_t buf[MAX_PATH];      
    GetFullPathNameW(fn, MAX_PATH, buf, NULL);

    std::wcout << buf << std::endl;
}

Или со строками ANSI:

#include <windows.h>
#include <iostream>

int main()
{
    LPSTR fn = "Ice\\Ice.ini";

    char buf[MAX_PATH];     
    GetFullPathNameA(fn, MAX_PATH, buf, NULL);

    std::cout << buf << std::endl;
}
...