【发布时间】:2011-05-20 23:14:22
【问题描述】:
我正在编写一个 ATL 项目,我想知道我应该如何在这里创建类。
现在我有一个由Add/Class/ATL Simple Object 创建的类。我想把它分成更小的类,但是这个类的方法应该使用 CComPtr 并有 CComPtr 作为参数。我无法创建“简单”c++ 类,因为那里没有CComPtr。
我是否应该通过ATL 简单对象向导创建ATL 类,然后使用该类的接口来调用方法。喜欢这里:
CComPtr<ITestAtlClass> tptr;
tptr.CoCreateInstance(CLSID_TestAtlClass);
tptr->test();
我应该通过Class View/ITestAtlClass/Add/Add Method添加所有公共方法吗? 构造函数呢?我是否必须仅通过属性初始化我的类(并通过 Class View/ITestAtlClass/Add/Add Property 添加它们)?并通过 IUnknown 接口传递每个 com 对象?
谁能告诉我应该如何在 ATL 项目中完成。我将在内部使用这个较小的类(没有人会在我的 DLL 之外创建这些类)只是为了让我的代码更具可读性。
【问题讨论】:
-
只为应该在 DLL 外可见的接口创建 ATL 类。
-
@Hans Passant 但我无法创建使用 CComPtr 的简单 c++ 类。怎么用?
标签: c++ visual-c++ dll com atl