2009-07-24 160 views
0

是否有某種「針對其他語言開發人員的學習C」書籍或教程?我目前正在努力學習C(不是C++,也許以後),即使我有一些使用經驗(在學校使用Borland C編寫DOS應用程序時......),我對此並不瞭解太多標準庫或關於「架構」。使用Visual Studio 2008/Visual C++ 2008 Express學習C

我目前的項目 - 我想用來學習 - 是寫一個Ogg Theora播放器。也就是說,在我的項目中使用libogg,libvorbis和libtheora。但在這裏我已經有一個問題:我如何鏈接它們?

我是C#開發人員,在C#中我只是添加一個引用,並罰款。但是在Visual C++(我將在任何情況下使用的編譯器/ IDE,因爲我以後真的很想做的項目取決於現有的C Visual C++項目),所以我簡直不知所措。我已經找到了很多關於C的資源,但是很多東西都是基本的東西(解釋什麼函數是 - 我知道函數是什麼,我只想知道C和C#之間的函數是如何不同的)/Java)或真正的學術(我會閱讀的東西來獲得睡眠,但不能從中學到東西)。

我發現this book有用,但是我也在尋找一些更簡潔針對現有的C#/的Java/PHP /無論開發商,也關於使用Visual C++ 2008

任何很好的提示?

回答

3

假設您有可用的這些庫的預編譯版本(即,.lib文件,以及帶有接口的一堆.h文件)。進入「項目屬性」,然後從左側的樹中選擇「鏈接器\常規」。在「其他庫目錄」中,將路徑添加到文件所在的任何位置。然後移至「鏈接程序\輸入」,並在「其他依賴項」中列出所有.lib文件。這應該關注鏈接。

對於頭文件,您需要轉到C/C++ \ General,並將它們所在的目錄添加到「Additional Include Directories」中。然後你可以像往常一樣#include

+0

謝謝,這有幫助。所以.lib意味着一個靜態庫,它可以作爲我自己的代碼的一部分進行編譯,相比之下,.dll是一個動態鏈接庫,它位於我的應用程序之外。無論如何,我總是需要.h文件? (在這種情況下我有他們,只是要求確認他們總是需要以正確的方式使用.lib) – 2009-07-25 00:19:26

+2

是的,您需要.h文件 - 原生DLL中沒有任何類型和功能元數據,與.NET程序集不同,所以你需要一個.h文件讓編譯器知道它。另外,即使在使用DLL時,通常也會有一個「導出庫」 - 一個.lib文件,它並不包含任何代碼,但會告訴鏈接器適當的符號實際上存在於這種和那種DLL中。您可以像靜態庫一樣將它們鏈接到您的項目。 – 2009-07-25 00:34:19

1

我喜歡Kernighan和裏奇(K & R)學習C後,我在帕斯卡爾大學我的大部分課程我認爲這使得它很容易transistion。

從Basic,Pascal,Assembly和「Programming Languages」類中各種類的濺出。 R易於閱讀,簡潔,應該是大多數C程序員圖書館的第一本書。

1

從項目中鏈接到其他庫的另一種方便的方法是在解決方案資源管理器中僅添加要作爲現有項目鏈接的.lib文件。 IDE將知道您想將它們傳遞給鏈接器。這樣您就不需要在鏈接器設置的不同位置添加路徑和文件名。

關於學習C,最經典的(如K & R)非常適合在POSIX環境中使用標準C庫。如果你想在Windows上編寫C程序,你還需要進入Win32 API,特別是如果你想編寫一個多媒體應用程序。 http://msdn.microfost.com是您可能需要使用的任何API的示例和教程的最有希望的起點。

在Win32上編寫一個純C的GUI是一個你可能不想經歷的痛苦的世界。您可能想要在這裏選擇一個帶有普通C(而不是C++)接口的輕量級原生Win32 UI庫。

1

除了Pavel Minaev的回答,我經常發現創建屬性表(.vsprops)以便輕鬆定義特定的依賴關係很有用。

例如,如果我依賴於libX,我可以創建一個libX.vsprops文件,並將我需要的確切包含路徑,lib路徑和.lib文件放入屬性表中。然後可以在配置和/或項目中使用這一個屬性表,從而爲您節省更改某些更改時更新多個配置的麻煩。

您可以在MSDN找到更多關於物業表的信息。

警告:屬性表僅在關閉解決方案時保存!他們是不是當你做一個「全部保存」,手動或當你開始構建時保存。

1

如果你能理解法語,那麼有一個很好的教程here

它解釋了基礎知識,但也是更復雜的東西。

3

爲什麼你不使用比Visual Studio更輕量級和更簡單的用於C項目的東西?

我推薦Code::Blocks。相信我,這是一個很多比Visual Studio的更輕巧,而且在我看來,這是一個很大更好地與它的工作,同時學習C.制定


至於書,我會去的兩個K&R's C Programming Language,但我也建議另一個:C Primer Plus,我認爲後者更適合作爲初學者的書。