Вы должны использовать функцию-член string::c_str()
, чтобы получить соответствующее const char*
(AKA LPCSTR
):
string Set;
...
CreateDirectory(("Game/Sets/" + Set).c_str(), NULL);
Но, вероятно, лучше использовать временную переменную:
string Set;
...
string fullDir = "Game/Sets/" + Set;
CreateDirectory(fullDir.c_str(), NULL);
Может случиться так, что вы компилируете программу UNICODE.Если это так, вы получите ошибку, потому что const char*
не конвертируется в const wchar_t*
.Решение состоит в том, чтобы вызвать ANSI-версию функции:
CreateDirectoryA(fullDir.c_str(), NULL);
Если вы предпочитаете, вы можете использовать функцию ANSI, даже если ошибок нет, просто для большей согласованности.
Помнитечто CreateDirectory
на самом деле является макросом, который расширяется до CreateDirectoryW
или CreateDirectoryA
в зависимости от конфигурации проекта.Вы можете использовать любое из этих трех имен по своему усмотрению.