WindowsSdkDir 從何處來?


WindowsSdkDir 從何處來?

緣起

在《修復被破壞的 vs 工程設置》和《修復被破壞的 vs 工程設置(續)》這兩篇文章中,分享了調查 VS 包含路徑錯誤的問題,感興趣的小伙伴兒可以查看。依稀記得在 2013 年的時候調查過類似的問題。前一陣子沒翻到,這兩天在翻筆記的時候居然意外的找到了。特整理分享給大家。

依稀記得是編譯的時候有問題才調查的。

查看 WindowsSdkDir

$(WindowsSdkDir)$ 可通過工程中的宏來查看。先查看宏,

view-all-macros
view-all-macros

找到 WindowsSdkDir,查看。

watch-windowssdk
watch-windowssdk

小貼士:可以在上方的搜索框輸入關鍵字進行過濾。

WindowsSdkDir 從何處來

從上圖,我們可以看到 $(WindowsSdkDir)$ 的值。但是這個值是從哪里來的呢?

可以通過各種文件內容搜索工具來搜索,或者更省事的辦法是用 win7 自帶的 findstr 命令來搜索。

猜測這個值必然和 vs 有關,所有搜索范圍限定為 vs 的安裝目錄。具體搜索命令如下:

search-using-findstr
search-using-findstr

等待搜索結束,就可以到 d:\result.log 里查看搜索結果了。內容如下:

search-result
search-result

用紅框選出來的兩個地方比較靠譜,屬於 vcvars*.bat,這個應該是設置一些環境變量的。查看對應的 vcvars*.bat,如下:

view-vcvars
view-vcvars

從上圖可知,會先到注冊表中查找,如果沒有找到再使用預先指定的值。在注冊表中查找的時候,會先到 HKLM 下查找,如果沒找到,再到 HKCU 下查找。

HKLM 下的值如下圖:

value_under_hklm
value_under_hklm

HKCU 的值如下圖:

value_under_hkcu
value_under_hkcu

使用 procmon 觀察加載過程

話不多說,直接看圖:

watch-using-procmon
watch-using-procmon

總結

  • 這個調查有年頭兒了,沒想到還能找到當時的筆記。真的是 好記性不如爛筆頭!
  • 如果沒有三方搜索工具(比如,FileLocator),可以試試系統自帶的 findstr


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM