使用Visual Studio 2008/Visual C++ 2008 Express学习C

使用Visual Studio 2008/Visual C++ 2008 Express学习C,c,C,对于其他语言的开发者来说,有什么学习C语言的书或教程吗 我目前正在努力学习C,而不是C++,也许后来,即使我有一些经验,在学校写作中使用Borland C……,我对标准库或体系结构了解不多。 我目前的项目——我想用它来学习——是写一个Ogg Theora播放器。也就是说,在我的项目中使用libogg、libvorbis和libtheora。但在这里我已经有一个问题:我如何链接它们 我是一名C开发人员,在C中我只需添加一个引用即可。但是在VisualC++中,无论如何我都要使用的编译器/IDE,因

对于其他语言的开发者来说,有什么学习C语言的书或教程吗

<>我目前正在努力学习C,而不是C++,也许后来,即使我有一些经验,在学校写作中使用Borland C……,我对标准库或体系结构了解不多。 我目前的项目——我想用它来学习——是写一个Ogg Theora播放器。也就是说,在我的项目中使用libogg、libvorbis和libtheora。但在这里我已经有一个问题:我如何链接它们

我是一名C开发人员,在C中我只需添加一个引用即可。但是在VisualC++中,无论如何我都要使用的编译器/IDE,因为我真正想做的项目依赖于现有的C Visual C++项目,我只是被项目属性压倒了。 我确实找到了很多关于C的资料,但很多资料都是解释函数是什么的基础资料——我知道函数是什么,我只是想知道函数在C和C/Java之间的区别,或者是我想读的那种学术性的东西让我睡一觉,而不是从中学习一些东西

<>我发现有用,但我也在寻找一些更简洁的东西,针对现有的C/java/PHP/开发人员,也使用Visual C++ 2008。
有什么好的提示吗

假设您有这些库的预编译版本可用,即.lib文件,以及一组带有接口的.h文件。进入项目属性,从左侧的树中选择Linker\General。在其他库目录中,将路径添加到这些.lib文件所在的位置。然后移动到Linker\Input,列出其他依赖项中的所有.lib文件。这应该考虑到链接


对于头文件,您需要转到C/C++\General,并将它们所在的目录添加到其他Include目录中。然后你可以像往常一样把它们包括进来。

我喜欢克尼根和里奇·K&R学习C。我在帕斯卡上了大学的大部分课程后,觉得这很容易过渡


从Basic、Pascal、Assembly到编程语言中的各种类。K&R易读、简洁,应该是大多数C程序员库中的第一本书。

从项目链接到其他库的另一种方便方法是只添加要链接为解决方案资源管理器中现有项的.lib文件。IDE将知道您想要将它们传递给链接器。这样,您就不需要在链接器设置中的不同位置添加路径和文件名

在学习C语言方面,像K&R这样的最经典的语言都非常适合在POSIX环境中使用标准C库。如果您想在windows上编写C程序,还需要进入Win32 API,尤其是如果您想编写多媒体应用程序。这是您可能需要使用的任何API的示例和教程的最有希望的起点


在Win32上用纯C编写GUI是一个痛苦的世界,你可能不想经历。您可能想在这里选择一个轻量级的本地Win32 UI库,其中包含一个简单的C非C++接口。p> 除了Pavel Minaev的答案之外,我经常发现创建属性表.vsprops来轻松定义特定的依赖关系非常有用

例如,如果我依赖libX,我可以创建一个libX.vsprops文件,并将所需的确切include path、lib path和.lib文件放入属性表中。这样,一个属性表就可以跨配置和/或项目使用,从而避免了在发生更改时更新多个配置的麻烦

您可以在上找到有关属性页的详细信息


警告:属性表仅在关闭解决方案时保存!无论是手动保存还是启动构建,当您执行“全部保存”操作时,都不会保存这些文件。

如果您能理解法语,有一个不错的教程


它解释了基础知识,但也解释了更复杂的东西。

为什么不在C项目中使用比visual Studio更轻量级、更简单的东西呢

我推荐。相信我,它比VisualStudio轻得多,而且在我看来,在学习用C开发的同时使用它要好得多


至于书,我两本都喜欢,但我也推荐另一本:我认为后者更适合作为初学者的书。

谢谢,这很有帮助。因此.lib意味着可以作为我自己代码的一部分编译的静态库,而.dll是一个位于我的应用程序之外的动态链接库。无论如何,我总是需要.h文件?在这种情况下,我有它们,只是想确认它们总是需要以正确的方式使用.lib是的,无论哪种方式都需要.h文件-本机DLL没有任何类型和函数metadat 与.NET程序集不同,它们中包含一个.h文件,因此编译器需要知道它。此外,即使在使用DLL时,您通常仍会有一个导出库-一个.lib文件,它实际上不包含任何代码,但会告诉链接器适当的符号实际上存在于某个DLL中。您可以使用与静态库完全相同的方式将它们链接到项目。