Итак, я хочу перестать задавать много вопросов о том, как выполнять большинство программных задач, потому что на большинство моих вопросов даются ответы, в которых написано «Читать MSDN». Вот. Дело в том, что я понятия не имею, как читать его или большинство языков программирования. Например, давайте возьмем функцию FtpCreateDirectory на MSDN (которую вы можете найти Вот)
Теперь представьте, что я только что изучил эту функцию, и я хочу попробовать ее. Как мне это прочитать, как мне взять те функции / команды, которые мне показывают. Как мне это напечатать? Этот реалт не помогает
BOOL FtpCreateDirectory(
_In_ HINTERNET hConnect,
_In_ LPCTSTR lpszDirectory
);
Спасибо!
Я сам этим не пользовался, но давайте рассмотрим и приведем пример:
HINTERNET hinternet = InternetConnect(...); //assume hinternet is valid
if (!FtpCreateDirectory(hinternet, "C:\\example")) {
std::cerr << "Error creating FTP directory. Code: " << GetLastError();
}
Шаг за шагом:
HINTERNET
справиться. Как? Ну, документы говорят об этом параметре:Дескриптор, возвращенный предыдущим вызовом InternetConnect, используя INTERNET_SERVICE_FTP.
Вот почему я позвонил InternetConnect
в примере.
Windows Data Types
статья, вы можете увидеть, что требуется либо CONST WCHAR *
или же CONST CHAR *
в зависимости от того UNICODE
определено. Для простоты я действовал так, как будто это не так, хотя вы можете использовать TEXT
макрос, чтобы сделать строку буквальным широким или узким в зависимости от UNICODE
, Указатель на завершающуюся нулем строку, которая содержит имя каталога, который будет создан. Это может быть либо полный путь, либо имя относительно текущего каталога.
Как мы видим, это просто путь, поэтому я прошел путь примера. Это всего лишь пример, но имейте в виду, что в разделе «Примечания» говорится об этом параметре.
Возвращает ИСТИНА в случае успеха или ЛОЖЬ в противном случае. Чтобы получить конкретное сообщение об ошибке, вызовите GetLastError. (больше не показано)
Поэтому мы заключаем вызов в оператор if, чтобы поймать ошибку, которую мы можем получить для использования кода GetLastError
, Важно использовать технику обработки ошибок, описанную в статье каждой функции. Многие из них говорят, что при ошибке вы можете использовать GetLastError
, но некоторые не поддерживают GetLastError
использование, а некоторые поддерживают различные типы функций поиска ошибок, поэтому обязательно следуйте инструкциям для каждой функции в отдельности.
Кроме этого, _In_
означает, что параметр входит и после него бесполезен. Это противоречит, среди прочего, _Out_
, это означает, что вы передадите в выделенную память, и функция запишет в нее, так что вы можете использовать ее после вызова функции со значением, которое записывает функция.
в части ссылки MSDN есть базовое предположение, что вы понимаете контекст для набора API.
Если программирование на win32 c (++) — это то, что вам нужно, вам нужно прочитать вступление о программировании Windows / win32. Непонятно, что вас интересует, вы пытаетесь написать настольные приложения, серверы, драйверы, ….
В некоторых случаях можно начать с классических книг, таких как окна программирования Чарльза Петцольда. В MSDN также есть много вводного уровня (google «запусти программирование на win32»)