WRL 类库项目模板

来源:互联网 发布:aion捏脸数据 编辑:程序博客网 时间:2024/06/05 10:02


Visual Studio 2013
其他版本

如果使用 Visual Studio 编写 Windows 运行时 C++ 模板库 (WRL) 项目,可以通过下载 WRL 类库项目模板极大地简化任务。

说明

如果必须手动更新现有的项目设置,请参见 DLL (C++/CX)。

下载“VSIX 项目”模板。

Visual Studio 为 WRL 项目不提供一个模板。 如何下载这是创建 Windows 应用商店 应用的基本类库与 WRL的项目模板。

下载“VSIX 项目”模板。

  1. 在菜单栏上,选择“文件”,再选择“新建项目”

  2. 在对话框的左窗格中,展开“配置属性”,然后选择“常规”,选择模版

  3. 在 搜索联机模板 右上角框中,键入 WRL 类库。 当模板出现在搜索结果中,选择 确定 按钮。

  4. 在对话框中,下载并安装,如果您同意许可时间限制,请选择 安装 按钮。

  5. 在模板上安装后,请通过选择 文件新建项目,然后选择 WRLClassLibrary,创建项目模板。 创建DLL项目

使用项目模板示例

将使用此模板创建 Windows 运行时 组件的示例。演练:使用 WRL 创建基本 Windows 运行时组件

项目模板提供。

测试项目模板

  • 声明 MIDL 的 .idl 文件提供基本界面特性其类实现。 以下是一个示例。

    C++
    import "inspectable.idl";import "Windows.Foundation.idl";#define COMPONENT_VERSION 1.0namespace WRLClassLibrary{    interface IWinRTClass;    runtimeclass WinRTClass;    [uuid(89656677-8679-477c-aff1-f724c64b70f3), version(COMPONENT_VERSION), exclusiveto(WinRTClass)]     interface IWinRTClass : IInspectable    {    }    [version(COMPONENT_VERSION), activatable(COMPONENT_VERSION)]    runtimeclass WinRTClass    {        [default] interface IWinRTClass;    }}
  • 定义了类实现的 .cpp 文件。 以下是一个示例。

    C++
    #include "pch.h"#include "WRLClassLibrary_h.h"#include <wrl.h>using namespace Microsoft::WRL;using namespace Windows::Foundation;namespace ABI{    namespace WRLClassLibrary    {        class WinRTClass: public RuntimeClass<IWinRTClass>        {            InspectableClass(L"WRLClassLibrary.WinRTClass", BaseTrust)        public:            WinRTClass()            {            }        };        ActivatableClass(WinRTClass);    }}

    RuntimeClass 基类来帮助管理所有全局对象引用模块中以及 IUnknown 声明和 IInspectable 接口的方法。InspectableClass 宏实现 IUnknown 和 IInspectable ActivatableClass 宏创建类实例的类工厂。

  • 文件中定义库导出了 DllMainDllCanUnloadNowDllGetActivationFactory和 DllGetClassObject的 module.cpp。

0 0
原创粉丝点击