在Visual Studio 2015中,我创建了一个C#“Windows运行时组件(Windows 8.1)”,我想在我的本机Win32 C ++项目中使用它。我使用工具“winmdidl”和“midlrt”为我的WinRT组件生成了必要的头文件。但是当我尝试使用Windows运行时C ++模板库(WRL)激活Win32 C ++代码中的相应接口时,我得到了HRESULT代码0x80040154(“未注册类”)。
如何注册我的Windows运行时组件?
Win32 C ++代码:
#include "WindowsRuntimeComponent1.h"
using namespace WindowsRuntimeComponent1;
...
RoInitializeWrapper initialize(RO_INIT_MULTITHREADED);
if (FAILED(initialize))
{
return PrintError(__LINE__, initialize);
}
ComPtr<IClass1Class> o1;
HRESULT hr = GetActivationFactory(HStringReference(RuntimeClass_WindowsRuntimeComponent1_Class1).Get(), &o1);
if (FAILED(hr))
{
return PrintError(__LINE__, hr); // returns 0x80040154 ("Class not registered")
}
我尝试了以下但没有成功:
我使用的是Windows 10。
旁注:我正在尝试将WinRT组件与我的Win32应用程序集成,因为我想使用Windows运行时API“Windows.UI.Input.Inking”进行手写识别。我试图直接在我的Win32 C ++代码中使用该API(使用WRL),但收到了HRESULT代码0x80004002(“不支持此类接口”)。