0

好的,所以我不想再问很多关于如何做大多数编程工作的问题,因为我的大部分问题都给出了“阅读 MSDN”的答案问题是,我不知道如何阅读它或大多数编程语言。例如,让我们使用 MSDN 上的 FtpCreateDirectory 函数(您可以在此处找到)

现在,假装我刚刚学会了这个功能,我想尝试一下。我如何阅读它,如何使用它显示给我的功能/命令。我该如何输入?这没有帮助:

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

谢谢!

4

2 回答 2

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文章,您可以看到它需要 aCONST WCHAR *CONST CHAR *,具体取决于是否UNICODE定义。为简单起见,我表现得好像不是,尽管您可以使用TEXT宏根据UNICODE.

指向包含要创建的目录名称的以空字符结尾的字符串的指针。这可以是完全限定路径或相对于当前目录的名称。

正如我们所见,它只是一个路径,所以我传入了一个示例路径。这只是一个示例,但请记住备注部分对此参数的说明。

  • 现在,我们检查返回值:

如果成功则返回 TRUE,否则返回 FALSE。要获取特定的错误消息,请调用 GetLastError。(更多未显示)

因此,我们将调用包装在 if 语句中以捕获错误,我们可以检索到 using 的代码GetLastError。使用每个函数的文章中描述的错误处理技术很重要。他们中的很多人说发生错误时可以使用GetLastError,但有些不支持GetLastError使用,有些支持不同类型的错误检索功能,因此请确保单独遵循每个功能的指南。

除此之外,_In_表示参数进入后就没​​用了。这与 , 其中相反_Out_,这意味着您将传递分配的内存并且函数将写入它,因此您可以在函数调用之后使用函数写入的值。

于 2013-01-04T02:04:48.067 回答
0

在 MSDN 的参考部分有一个基本假设,即您了解 API 集的上下文。

如果您想要win32 c(++) 编程,那么您需要阅读windows 编程/win32 的介绍。不清楚您感兴趣的领域是什么,您是否正在尝试编写桌面应用程序、服务器、驱动程序......

在某些情况下,像 Charles Petzold 编程窗口这样的经典书籍是一个不错的起点。MSDN 也有很多介绍级别的东西(google 'start win32 programming')

于 2013-01-04T01:52:20.747 回答