Visual Studio 2013
如果使用 Visual Studio 编写 Windows 运行时 C++ 模板库 (WRL) 项目,可以通过下载 WRL 类库项目模板极大地简化任务。
说明 |
---|
如果必须手动更新现有的项目设置,请参见 DLL (C++/CX)。 |
将使用此模板创建 Windows 运行时 组件的示例。演练:使用 WRL 创建基本 Windows 运行时组件
测试项目模板
-
声明 MIDL 的 .idl 文件提供基本界面特性其类实现。 以下是一个示例。
import "inspectable.idl"; import "Windows.Foundation.idl"; #define COMPONENT_VERSION 1.0 namespace 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 文件。 以下是一个示例。
#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 宏创建类实例的类工厂。
-
文件中定义库导出了 DllMain、DllCanUnloadNow、DllGetActivationFactory和 DllGetClassObject的 module.cpp。