一直在寻找如何链接引用 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”。
关于C++ 应用缺少 winrt::Windows::Storage::Streams::DataWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52062989/