我沒有用這個自己,但讓我們逐步和舉個例子:
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_
等相反,這意味着您將傳入分配的內存並且函數會寫入該函數,因此您可以在函數調用後使用該函數並使用該函數寫入的值。
只是澄清 - 你是說你不知道如何用C++編寫函數調用? –
值得注意的是,MSDN有'使用blah blah blah'部分,其中有Windows編程的不同方面的教程。這些有時可以幫助如何調用特定的功能。 – chris