gpt4 book ai didi

c++ - 使用 tlb 文件的 COM 自动化

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:18 25 4
gpt4 key购买 nike

将我视为 Windows 环境和 COM 编程的新手。

我必须自动化应用程序 (CANoe) 访问。 CANoe 将自己公开为 COM 服务器并提供 CANoe.h 、 CANoe_i.c 和 CANoe.tlb 文件。任何人都可以指定如何编写 C++ 客户端,以访问应用程序的对象和功能。

另外,请说明如何从 C++ 访问 tlb 文件中的代码。

最佳答案

Visual Studio 有很多内置支持,可以将类型库导入 C++ 项目并使用这样定义的对象。例如,您可以使用 #import 指令:

#import "CANoe.tlb"

这将导入类型库,并将其转换为头文件和实现文件 - 它还会导致实现文件与您的项目一起构建并包含头文件,所以这里有很多神奇的东西.

然后,您将获得大量类型定义,用于智能指针包装器,用于类型库中定义的类型和对象。例如,如果有一个名为 Application 的 CoClass 实现了接口(interface) IApplication,您可以这样做:

ApplicationPtr app(__uuidof(Application));

这会导致在运行时创建 coclass 应用程序并将其绑定(bind)到变量 app,您可以像这样调用它:

app->DoSomeCoolStuff();

错误处理是通过检查 COM 调用的结果并在必要时抛出适当的 _com_error 异常来完成的,因此这意味着您需要安全地编写异常。

关于c++ - 使用 tlb 文件的 COM 自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037532/

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