我找到了一个在c++上的Windows 10中如何制作烤面包通知的例子
https://github.com/WindowsNotifications/desktop-toasts/blob/master/CPP/DesktopToastsSample.cpp
在我看来,这段代码有C风格,而不是C++,我觉得它看起来不太好。
我在winrt上为с++ https://github.com/Microsoft/cppwinrt找到了一个包装器
现在,我正在尝试编写类似于示例中的类似代码,但使用winrt。
例如,有行
ComPtr<IToastNotificationManagerStatics> toastStatics;
HRESULT hr = Windows::Foundation::GetActivationFactory(
HStringReference(RuntimeClass_Windows_UI_Notifications_ToastNotificationManager).Get(),
&toastStatics);我开始写代码
#include "winrt/Windows.UI.Notifications.h"
#include "winrt/Windows.Foundation.h"
using namespace winrt::Windows::UI::Notifications;
using namespace winrt::Windows::Foundation;
void main() {
auto igetaf = IGetActivationFactory();
igetaf.GetActivationFactory(???);文档甚至没有说明我可以使用什么字符串
learn.microsoft.com/en-us/uwp/api/windows.foundation.igetactivationfactory (声誉不足:()
你能给我一个工作代码的例子吗??
发布于 2017-05-13 16:41:35
目前有三种使用C++运行时类的主要方法。首先是使用ABI,即你发现的。正如你所发现的,这是非常麻烦的。
第二个是C++/CX,它使用^符号来表示Windows类。您可以在UWP示例回购中看到这种样式的示例。。
第三是C++/WinRT。在C++/WinRT中,对象直接表示为类。有导论和迁移指南。
在C++/WinRT中,您根本不使用类工厂。(因此不需要为类名创建hstring,也不需要创建IGetActivationFactory。)
涵盖所有C++/WinRT的内容超出了本站点的范围,但下面是一个草图:
using winrt::Windows::UI::Notifications::ToastNotification;
using winrt::Windows::UI::Notifications::ToastNotificationManager;
using winrt::Windows::Data::Xml::Dom::XmlDocument;
XmlDocument doc;
doc.LoadXml(L"<toast...>...</toast>");
ToastNotification toast(doc);
ToastNotificationManager::CreateToastNotifier(L"appid").Show(toast);https://stackoverflow.com/questions/43953779
复制相似问题