Как мне прочитать MSDN и подать заявку?
Итак, я хочу перестать задавать много вопросов о том, как выполнять большинство программных задач, потому что на большинство моих вопросов даются ответы, в которых говорится "Прочитайте MSDN", основанный здесь. Дело в том, что я понятия не имею, как читать его или большинство языков программирования. Например, давайте возьмем функцию FtpCreateDirectory в MSDN (которую вы можете найти здесь)
Теперь представьте, что я только что изучил эту функцию, и я хочу попробовать ее. Как мне это прочитать, как мне взять те функции / команды, которые мне показывают. Как мне это напечатать? Этот реалт не помогает
BOOL FtpCreateDirectory(
_In_ HINTERNET hConnect,
_In_ LPCTSTR lpszDirectory
);
Спасибо!
2 ответа
Я сам этим не пользовался, но давайте рассмотрим и приведем пример:
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")