【问题标题】:How do I read the MSDN and apply?如何阅读 MSDN 并申请?
【发布时间】:2013-01-04 01:45:11
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 澄清一下 - 你是说你不知道如何用 C++ 编写函数调用?
  • 值得注意的是,MSDN 有Using blah blah blah 部分,其中有关于Windows 编程不同方面的教程。这些有时可以帮助解决如何调用特定函数。

标签: c++ visual-studio msdn manual


【解决方案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_ 等相反,这意味着您将传入分配的内存,函数将写入它,因此您可以在函数调用后使用函数写入的值。

【讨论】:

  • @MoyleJack,您可以通过单击答案分数旁边的复选标记来接受您希望人们看到的问题的答案(之后它将移至顶部)。我建议您查看您的问题,并为每个问题提供至少一个有助于解决问题的答案。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 2018-09-20
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    相关资源
    最近更新 更多