C++ 应用缺少 winrt::Windows::Storage::Streams::DataWriter

标签 c++ windows-runtime

一直在寻找如何链接引用 DataWriter 的小程序

我的程序引用了其他对象(如 winrt::Windows::Devices::Bluetooth 类)。所以我知道它并没有完全坏掉。

我的 cpp 文件顶部有这两个库,在我开始使用 DataWriter 之前,它可以链接所有内容。

#pragma comment(lib, "oleaut32")
#pragma comment(lib, "runtimeobject")

它编译得很好,但我不知道要包含什么库。 MS 引用文档似乎没有提到您需要链接才能使用它们的库:

https://learn.microsoft.com/en-us/uwp/api/windows.storage.streams.datawriter

在发布到这里之前,我尝试先搜索(使用 dumpbin)我系统上的所有库。

auto writer = DataWriter();
writer.WriteString(L"HEREIAM");

编辑:添加了实际的链接器错误:

error LNK2001: unresolved external symbol "public: __cdecl winrt::Windows::Storage::Streams::DataWriter::DataWriter(void)" (??0DataWriter@Streams@Storage@Windows@winrt@@QEAA@XZ)
error LNK2001: unresolved external symbol "public: unsigned int __cdecl winrt::impl::consume_Windows_Storage_Streams_IDataWriter<struct winrt::Windows::Storage::Streams::IDataWriter>::WriteString(struct winrt::param::hstring const &)const " (?WriteString@?$consume_Windows_Storage_Streams_IDataWriter@UIDataWriter@Streams@Storage@Windows@winrt@@@impl@winrt@@QEBAIAEBUhstring@param@3@@Z)

如果有其他方法可以使用 winrt 创建缓冲区,那也很好。

最佳答案

您唯一需要的库是“windowsapp.lib”,尽管其他库也适用于桌面/控制台应用程序。当您遇到这样的链接器错误时,这意味着您未能包含提供缺少定义的必要 header 。尝试包含“winrt/Windows.Storage.Streams.h”。

Here's more info from the FAQ .

关于C++ 应用缺少 winrt::Windows::Storage::Streams::DataWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52062989/

相关文章:

c++ - 奇怪的段错误就在 main 的开始

c++ - 重用套接字时出现套接字使用错误

c++ - 什么时候应该使用非成员运算符重载?

c# - FTP上传结束时不一定总能获得226 Transfer OK

c++ - 使用 gstreamer 将 jpeg 混合到 mkv

c++ - 我们可以有一个具有多种返回类型的函数吗? (C++11 及以上版本)

c# - 如何在 WinRT 中的按钮中将文本放置在图像上

c# - 从 System.Runtime.dll 而不是从 mscorlib 获取对 System.String 的引用

c# - 使用 RichTextBlock 或其他组件在 WinRT 中显示 Html

c# - 旧的原生应用程序可以在Windows8平板电脑上运行吗?