c++ - 这个 C++ [out] 参数是指向枚举的指针,还是只是一个值?

标签 c++ enums directshow directshow.net

目前我正在使用 DirectShow.NET ,Microsoft 的 DirectShow (C++) 的非官方 .NET“端口”。

两者都是IAMAnalogVideoDecoderIAMTVTuner声明方法 get_AvailableVideoFormats。官方文档中是这样定义方法的:

HRESULT get_AvailableTVFormats(
  [out]  long *lAnalogVideoStandard
);

我不清楚这个参数是指向单个 AnalogVideoStandard 的指针,还是一个枚举。不幸的是,我对 C++ 经验不足,无法完全理解这些文档。由于方法名称,我希望它是一个枚举,但它是吗?

我问这个的原因是因为在 .NET 库中,这个参数不是枚举,只是一个值。我觉得这很奇怪,因为我希望在这里获得多种“可用视频格式”。


顺便说一下,AnalogVideoStandard 是一个枚举。

最佳答案

It's not clear to me if this parameter is a pointer to a single AnalogVideoStandard, or a enumeration.

两者都不是1:

Pointer to a variable that receives a bitwise OR of zero or more flags from the AnalogVideoStandard enumeration.

它是一个指向代表零个或多个 AnalogVideoStandard 的值的指针。

This answer应该解释其余的。您应该可以申请 this answer到您的 .NET 代码。

1 从技术上讲,它可以是 C# 中的 枚举值,因为 enum 类型可以应用 FlagsAttribute它们,但在 C++ 中没有等效项,您只是 | 值,没有特别的宣传。

关于c++ - 这个 C++ [out] 参数是指向枚举的指针,还是只是一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601382/

相关文章:

c++ - 用于在 C++ 中生成 HTML 文件的小型库

java - 我应该如何在 JavaDB 中存储 Java 枚举?

c# - 反转枚举标志

c++ - 使用 DirectShow 将视频捕获为 AVI 文件

c++ - 无法找到音频流

c++ - 无限模板递归,因为仅使用 gcc 没有 bool 表达式优化

c++ - 在 main.cpp 之外创建一个类以使用 QtQuick2ApplicationViewer 的正确方法是什么?

visual-c++ - 是否有一种干净的方法来处理 C++ COM 对象中抛出的 bad_alloc 异常?

c++ - 正整数的组合 uniq(顺序不重要)

c++ - `typedef enum {} t` 是否允许 C++0x 中的作用域枚举元素标识符?