只需谷歌搜索或duckduckgoing
未解析的外部符号
IID_ICallbackWithNoReentrancyToApplicationSTA
仅产生一次直接命中,甚至无法帮助报告问题的人员,因此我希望一些C ++ / WinRT人员遇到此问题。
虽然我不能共享所有源(大量交织的专有文件),但是我可以共享方案和代码更改的细目分类;另外,在任何地方都很少提及IID_ICallbackWithNoReentrancyToApplicationSTA
。巧合的是,appears on GitHub是一些Kenny Kerr的东西。我遇到问题的项目是C ++ / WinRT项目,所以这似乎是一个相关的陷阱,尤其是因为提到了xlang
,它应该是C ++ / WinRT的抽象。
场景:一个Core UAP C ++ / WinRT应用程序/服务正在使用C ++ / WinRT库。在构建应用程序/服务时尝试使用库创建的库时,构建会中断。
代码更改:我在库中实现了一些PPL任务,特别是一些concurrency::task<void>
,它们对正在使用的C ++ / WinRT库中使用的新线程进行一些I / O。通过应用程序/服务。这是一个std :: thread,它使用lambda来获取对象的副本并执行I / O。像这样:
std::thread writer([content_vector, json_string, content_file_name, json_file_name]() {
auto write_content = Helper_IO::Overwrite_Lines_Concurrent(content_file_name, content_vector);
auto write_json = Helper_IO::Overwrite_File_Concurrent(json_file_name, json_string);
write_content.get();
write_json.get();
});
Helper_IO::Overwrite_*_Concurrent
都是静态的,并且都返回concurrency::task<void>
我尝试使用writer.detach()
和writer.join()
,但结果相同。
答案 0 :(得分:4)
使用“项目”>“属性”>“链接器”>“输入”>“其他依赖项”设置,添加uuid.lib
。
在某些背景下,名称以“ IID”开头的标识符为{guids}。数据,而不是代码。 MSDN文档通常不足以告诉您需要链接的库,而过于关注文档功能。我最喜欢的技术是使用类似grep的工具(我使用了Far文件管理器,有点难以推荐),然后在SDK的lib目录中搜索字符串。