爲什麼GetTempPath總是返回短路徑名?有沒有辦法返回長路徑名稱,而不是隨後將返回的字符串轉換爲GetLongPathName?關於Win32 API中的GetTempPath函數
1
A
回答
4
GetTempPath
很可能返回的是TMP
或TEMP
環境變量的值,它們(至少在Windows XP下)通常用短路徑名稱來定義。
當初始化環境變量時,Windows似乎會從HKEY_CURRENT_USER\Environment
註冊表項中轉換爲短路徑名。
0
而不是使用GetTempPath,爲什麼不只是得到TEMP環境變量的值?這將是漫長的道路。
0
我確實認爲這是出於兼容性的原因。 在較舊的Windows版本中,臨時路徑相對較短。在最新的Windows中,這個路徑要長得多。許多舊的應用程序可能會使用固定長度(小長度)的緩衝區來檢索臨時路徑。 如果你返回長文件名(現在比較大),你會打破這個舊的程序,因爲它們的緩衝區太小而不適合。這就是GetTempPath返回短路徑名的原因。
相關問題
- 1. 關於通過字符串Win32 API函數
- 2. 基於函數的參數,我如何在Win32 API函數中中斷?
- 3. Win32 Api函數的調試中斷
- 4. Perl Win32 :: API()調用()函數
- 5. 未找到Win32 API函數
- 6. 在linux(或POSIX)中的函數類似於win32 mem api
- 7. 關於C++ return語句/ Win32 API
- 8. 調用的Win32 API ::對於SendMessage函數返回結構
- 9. Win32 API來枚舉dll導出函數?
- 10. Win32 API函數需要什麼編碼?
- 11. OpenFileDialog的Win32函數?
- 12. 關於WIN32中IsDialogMessage()的問題
- 13. 關於win32讀取文件的操作
- 14. 什麼是win32 API函數GetModuleFileName或GetModuleHandle中的「Module」?
- 15. Win32 API中的`A`和`W`函數有什麼區別?
- 16. 用於調用返回ERROR_MORE_DATA或ERROR_INSUFFICIENT_BUFFER的Win32 API函數的模式?
- 17. 關於igraph中介函數
- 18. Gui的Win32 API
- 19. Win32 API用於優雅地關閉另一個進程?
- 20. 關於Matlab中PCA函數的參數
- 21. 有沒有人在.NET中使用Win32 API函數CredWrite?
- 22. Haskell中的Win32 API調用?
- 23. 關於函數php
- 24. 關於javascript函數
- 25. 關於LookAt()函數
- 26. 關於super()函數
- 27. 關於getopts函數
- 28. 關於:strtok函數
- 29. 關於sigaction函數
- 30. 關於F#函數
我查過了。事實並非如此。 – 2009-04-28 21:28:30