2012-12-09 128 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

相关问题