2017-02-12 3 views
0

Я пытаюсь получить путь (AppData) и добавьте имя файла (smss.dll), и объединить эти два, чтобы сформировать C:\users\username\appdata\roaming\smss.dll я это уже:Получение путь и имя файла присоединяя

static char appdata[MAX_PATH+1]; 
SHGetSpecialFolderPathA(HWND_DESKTOP, appdata, CSIDL_APPDATA, FALSE); 

LPCSTR target = "smss.dll"; 

Как я могу объединить их в одну переменную?

+2

Это код C. Вы читали о strcat? –

+0

Вы действительно должны использовать версии W, а не версии A. Это 2017. – stackptr

+0

Добавление имени файла к пути имеет дополнительную семантику, которую игнорируют предлагаемые дубликаты. Голосование для повторного открытия, даже если оно должно быть закрыто как дубликат других вопросов и ответов. – IInspectable

ответ

-3
static char appdata[MAX_PATH+1]; 
SHGetSpecialFolderPathA(HWND_DESKTOP, appdata, CSIDL_APPDATA, FALSE); 

strcat(appdata, "\\smss.dll"); 

strcat Функция добавляет строку правой в буфер слева. Предполагается, что у места назначения есть место для конкатенации. Если пространства недостаточно, это неопределенное поведение. Таким образом, неплохо проверить, что достаточно места.

+1

Должно быть 2 '\', иначе '\ s' будет анализироваться как escape-последовательность. – mch

+0

@mch Исправлено, спасибо – stackptr

+0

Отличное решение, спасибо кучу – Joshutee

Смежные вопросы