gpt4 book ai didi

c++ - 在 C++ 中使用 DirectShow 或其他 COM 库时,我#import 哪些 DLL?

转载 作者:行者123 更新时间:2023-11-28 05:33:19 24 4
gpt4 key购买 nike

我在从 C++ 调用 DirectShow 时尝试使用 Compiler COM Support。从 earlier post 我知道我需要 #import quartz.dll 和 qedit.dll。这样做为我提供了智能指针类,例如 IGraphBuilderPtr 等,我可以看到 IntelliSense 支持它。我现在正在尝试使用 ICaptureGraphBuilder2 但它没有出现在 IntelliSense 中并尝试 #import devenum.dll, qcap.dll 给我一个 "C1803 : 无法打开类型库文件”。所以,有几个问题:

  1. 使用 DirectShow 接口(interface)时,我需要#import哪些 DLL?
  2. 一般来说,给定一个 COM 库,我如何知道我可以#import 哪些 DLL?

最佳答案

对于 C++ 开发,您不需要 #import .相反,你

#include <dshow.h>
#pragma comment(lib, "strmiids.lib")

你有 ATL 的智能指针,例如CComPtr<IFilterGraph2> (或 QzCComPtr 只有在开发过滤器而不是高级 DirectShow 消费者代码时才有意义)。

因此,

What DLLs do I need to #import when using DirectShow interfaces?

没有。

In general, given a COM library, how do I know which DLLs I can #import?

您需要知道 DLL 名称或类型库标识符。您可以从文档或使用 COM/OLE 查看器等 SDK 工具或通过注册表查看。我建议使用类型库标识符导入。

如果您需要 GUID,它只会在 C++ 代码中导入 DirectShow DLL,而 GUID 已弃用并从 SDK 中排除。

关于c++ - 在 C++ 中使用 DirectShow 或其他 COM 库时,我#import 哪些 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38917287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com