2013-01-04 60 views
0

好了,所以我要不停的問很多關於如何做大多數編程的東西的問題,因爲我大部分的問題給出的答案是說「閱讀MSDN」創刊here.事情是,我不知道如何閱讀或最編程語言。例如,我們可以使用MSDN上的FtpCreateDirectory函數(您可以找到here如何閱讀MSDN並申請?

現在,假裝我剛學過這個功能,我想嘗試一下。我如何閱讀它,如何閱讀它所顯示的功能/命令。我如何輸入它?這reallt沒有幫助:

BOOL FtpCreateDirectory(
_In_ HINTERNET hConnect, 
_In_ LPCTSTR lpszDirectory 
); 

謝謝!

+4

只是澄清 - 你是說你不知道如何用C++編寫函數調用? –

+1

值得注意的是,MSDN有'使用blah blah blah'部分,其中有Windows編程的不同方面的教程。這些有時可以幫助如何調用特定的功能。 – chris

回答

0

在MSDN的refernce部分中有一個基本假設,即您瞭解API集的上下文。

如果win32 c(++)編程是你想要的,那麼你需要閱讀一個介紹做windows編程/ win32。它不清楚你感興趣的領域是什麼,你想編寫的桌面應用程序,服務器,驅動程序....

在某些情況下,經典的書籍像查爾斯Petzold的Windows程序設計是一個良好的開端。 MSDN有很多介紹層次的東西太(谷歌啓動Win32編程「)

1

我沒有用這個自己,但讓我們逐步和舉個例子:

HINTERNET hinternet = InternetConnect(...); //assume hinternet is valid 

if (!FtpCreateDirectory(hinternet, "C:\\example")) { 
    std::cerr << "Error creating FTP directory. Code: " << GetLastError(); 
} 

一步一步:

  • 首先,我們得到了HINTERNET手柄。怎麼樣?那麼,文檔說這有關參數:使用INTERNET_SERVICE_FTP前面調用InternetConnect返回

句柄。

這就是爲什麼我在示例中調用InternetConnect的原因。

  • 接下來,我們看一下第二個參數。查看Windows Data Types文章,您可以看到它需要CONST WCHAR *CONST CHAR *,具體取決於是否定義了UNICODE。爲了簡單起見,我表現得好像不是這樣,儘管可以使用TEXT宏根據UNICODE將字符串字面寬或變窄。要創建

指向一個空終止字符串包含目錄的名稱。這可以是完全限定的路徑或相對於當前目錄的名稱。

正如我們所看到的,這只是一條路徑,所以我通過了一個示例路徑。這只是一個例子,但請記住備註部分對此參數的說明。

  • 現在,我們檢查返回值:

返回TRUE如果成功,否則爲false。要獲取特定的錯誤消息,請調用GetLastError。 (更多未顯示)

因此,我們總結了呼叫if語句來捕獲錯誤,我們可以獲取的代碼使用GetLastError。使用每個函數文章中描述的錯誤處理技術很重要。他們中的很多人表示,出現錯誤時,您可以使用GetLastError,但有些不支持GetLastError使用情況,有些支持不同類型的錯誤檢索功能,因此請確保按照每個功能的指導原則單獨使用。

除此之外,該_In_意味着該參數會,它是沒有用了。這與_Out_等相反,這意味着您將傳入分配的內存並且函數會寫入該函數,因此您可以在函數調用後使用該函數並使用該函數寫入的值。

+0

@MoyleJack,您可以通過點擊答案分數旁邊的複選標記來接受您希望人們看到的問題的答案(之後會將其移至最前)。我建議您回顧一下您的問題,併爲每個問題提供至少一個有助於解決問題的答案。 – chris