【问题标题】:What does dwFlagsAndAttributes = 0 mean in the CreateFile Method?CreateFile 方法中的 dwFlagsAndAttributes = 0 是什么意思?
【发布时间】:2013-08-01 15:00:21
【问题描述】:

所以我将CreateFile function 用于我目前正在处理的C# 项目。我见过一些将0 作为dwFlagsAndAttributes 的参数的示例。

虽然我正在阅读文档,但它没有指定 dwFlagsAndAttributes = 0 需要什么设置。这只是一种不设置标志或属性的方式吗?

此方法的 C# 语法为:

[DllImport("kernel32.dll", SetLastError = true)]
static extern SafeFileHandle CreateFile(string lpFileName, 
       FileAccess dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes,
       FileMode dwCreationDisposition, uint dwFlagsAndAttributes, 
       IntPtr hTemplateFile);

非常感谢任何帮助。

【问题讨论】:

    标签: c# winapi


    【解决方案1】:

    这只是一种不设置标志或属性的方式吗?

    没错。将0 传递给作为一组位标志的参数(与此参数一样)意味着没有设置任何标志。

    【讨论】:

      【解决方案2】:

      是的,它只是意味着该文件没有什么特别的(即,它不匹配任何 File Attribute Constants 属性。

      【讨论】:

        【解决方案3】:

        尽管名称为CreateFile,但此函数用于创建和打开文件。在用于打开文件的情况下,dwFlagsAndAttributes 参数通常被忽略。您看到的案例很可能与文件打开与文件创建有关。

        如果您使用此方法来创建文件,我会使用FILE_ATTRIBUTE_NORMAL (0x80)。

        【讨论】:

          猜你喜欢
          • 2015-03-20
          • 2020-01-07
          • 2018-09-10
          • 2017-05-09
          • 1970-01-01
          • 1970-01-01
          • 2013-05-28
          • 2018-09-25
          • 2011-05-25
          相关资源
          最近更新 更多