2015-10-18 93 views
2

我想使用的功能GetLongPathName完全相同的方式我使用的GetShortPathName正確使用GetLongPathName功能

  1. 調用函數NULL的輸出參數用於獲取大小來分配。
  2. 動態分配字符串。
  3. 用分配的字符串再次調用函數。

GetShortPathName MSDN頁說:

傳遞NULLlpszShortPath和零cchBuffer將始終返回所需的緩衝區大小爲指定lpszLongPath

那個筆記不存在GetLongPathName函數中,所以我很害怕這樣使用函數。

那麼,該功能的正確使用是什麼?

回答

3

您可以調用GetLongPathName緩衝區爲空或NULL,它將以所需的緩衝區長度進行應答。

換句話說,你可以通過NULLlpszLongPath參數和0cchBuffer

+1

您可能仍然想擴大錯誤的緩衝區,因爲文檔建議爲了處理比賽。 'MAX_PATH'似乎是一個合理的初始猜測。 – doynax

+0

@Leandro Caniglia - 是「空緩衝區」的空指針嗎? – Ofer

+1

是的,您可以將'NULL'作爲'lpszLongPath'參數和'cchBuffer = 0'傳遞。 –