2017-02-12 131 views
0

我試圖讓一個路徑(應用程序數據),並附加文件名(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

向路徑附加文件名具有所提出的重複忽略的附加語義。投票重新開放,即使它需要作爲另一個Q&A的副本而被關閉。 – IInspectable

回答

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

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

strcat函數將右側字符串附加到左側緩衝區。它假定目標有足夠的空間來完成連接。如果沒有足夠的空間,這是未定義的行爲。因此,檢查是否有足夠的空間是一個好主意。

+1

應該有2'\',否則'\ s'會被解析爲轉義序列。 – mch

+0

@mch固定,謝謝 – stackptr

+0

完美的解決方案,謝謝一堆 – Joshutee