2012-12-09 182 views
2

我可以通過Windows資源管理器中的搜索輕鬆找到stdio.h頭文件,但找不到像stdio.lib(?)這樣的實現文件。我在哪裏可以找到它?我在哪裏可以找到Visual Studio中stdio.h的實現?

此外,我無法通過Windows資源管理器中的搜索找到Windows.h,儘管我可以使用Windows.h編譯源代碼。

有沒有人可以解釋一下?

回答

2

CRT(C運行時)的源包含在Visual Studio安裝目錄下,位於VC \ crt \ src下。有很多文件;您需要找到定義您感興趣的功能的那個。

Windows標頭(包括Windows.h)包含在Windows SDK中,其中有一個包含包含標頭的目錄。這些文件在計算機上的位置完全取決於您安裝Windows SDK的位置。

+0

但是,stdio.h的實現文件似乎沒有在那裏找到...我可以編譯包含包含stdio.h的printf()的源代碼。鏈接器根本不報告任何錯誤。在我的hdd stdio.h實現代碼中的某處必須存在。我在哪裏可以找到它?我知道這可能有點有趣或容易的問題。但我不知道答案,只是好奇而已。 : - $ – sky

+0

源代碼位於答案中指出的目錄下的** printf.c **中。該庫位於您要鏈接的[C運行時庫](http://msdn.microsoft.com/zh-cn/library/abx4dbyh.aspx)中的任何一個。這些庫位於Visual Studio安裝目錄中的** VC \ lib **文件夾中。 –

+0

感謝您的回答。我找到了printf.c文件。但是,我仍然不知道爲什麼我的helloworld項目構建得如此完美,儘管我從未在我的項目中導入printf.c並且從未編譯它。這隻意味着鏈接器在我的項目外的某個地方找到了printf()的實現。在我的項目屬性頁面>配置。屬性>鏈接器>輸入>其他依賴關係有一些.lib文件,如kernel32.lib,user32.lib,gdi32.lib,... printf()funciton在這些.lib文件之一的實現代碼? – sky

相關問題