2014-07-18 40 views
-1

我開始學習C++,並且我一直在遇到這個問題,其中人們會給出示例代碼,但是當我嘗試對它進行complile時,由於他們使用了一些定義,聲明,函數或變量,這些變量在某些庫中定義,他們很容易忘記包含這些變量。雖然我已經成功地找到了一些使用谷歌來找到使用該功能的頭文件,但它變得有點乏味。C++頭文件/庫文件和定義的數據庫

我現在正在爲Windows桌面使用visual studio express。

下面是一個例子:

以下鏈接給的閱讀和寫作到串行端口的例子。

該示例使用CString聲明變量PortSpecifier。

沒有在文檔中他們提到他們正在使用的庫(提及他們使用Windows API)。

VS無法識別Cstring。搜索CString顯示有一個string.h或cstring庫。但是,這些標識符中沒有標識符。

MSDN有一個精彩的頁面,描述CString是什麼,並且在頁面底部有一個神祕的#include「afx.h」,但包括這個頭文件並沒有給編譯器描述Cstring。所以我想知道互聯網幾個小時試圖找到一種方法讓VS接受CString(或找到替代品)。

1)是否有一個函數可以查找哪個庫或頭文件具有給定違規「單詞」的定義?

2)是否有一些數據庫可以輸入這個詞來找出我需要包含哪些內容以便VS識別它?

3)SOP讓讀者猜測他需要哪個庫來運行腳本?

+0

1.沒有2.沒有3.沒有 – drescherjm

+0

@drescherjm顯然我錯過了一些東西(考慮到我學習C++的時間長度並不奇怪)。我假設列出的API是我應該包含的頭(即使用Windows API,我包括Windows.h)。如果某人在他們的代碼中有一個函數,但沒有定義,那麼您如何找出要調用的庫? – jeffpkamp

+0

這些問題中出人意料的數字可以通過*「在線文檔搜索」來解答。* – dmckee

回答

2

不幸的是,沒有,沒有魔術功能或主數據庫找出哪個庫是隨機類/類型/任何屬於哪個庫。您最好的選擇是Google,並在您調查時注意細節。

是的,理想情況下,代碼示例應描述它們所具有的任何依賴關係。但不幸的是,並不是每個在互聯網上發佈代碼的人都是完全專業或徹底的。事實上,他們可能和你一樣新事物。

對於您的特定示例,我獲得的「CString」的第一個谷歌結果是Using CString。在該頁面上,如果你看看左側的導航,你會發現它位於「MFC和ATL」部分。對這些問題的一些研究應該解釋他們是來自微軟的Visual Studio提供的庫;儘管我不相信Express版有他們。

通過查看CString的文檔和示例,希望顯而易見的另一件事是它是一個字符串容器類。所以基本上它可以做的任何事都可以用std :: string來完成。儘管你可能需要重構一下。