11

我收到以下错误:

fatal error C1107: could not find assembly 'platform.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable

重现步骤

0) 创建一个新的空项目

1) C/C++ > 常规 > 使用 Windows 运行时扩展 > 是

2) C/C++ > 代码生成 > 启用最小重建 > 否

3)添加源文件*.cpp,文件可以为空

4) 尝试编译

我尝试手动比较和更改项目设置以匹配某些示例代码中的设置,但似乎没有任何效果。

4

2 回答 2

13

我不明白你有什么问题,所以

  1. 如果您不想针对 WinRT 进行编码,只需将“Consume ...”设置为 false,问题就会消失
  2. 如果你想针对 WinRT 进行编码,你应该执行一个额外的步骤:转到General并将Windows Store App Support设置为 true
于 2013-02-25T16:02:09.327 回答
5

要创建 C++/CX 桌面应用程序:

C/C++ -> General项目属性中,设置Consume Windows Runtime Extension为是

在同一个选项卡中输入这些以Additional #using Directories输入包含windows.winmdplatform.winmd文件的目录。对我来说,使用 VS2017,即:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\store\references;
C:\Program Files (x86)\Windows Kits\10\UnionMetadata;
C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\2.0.0.0;
C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.FoundationContract\2.0.0.0

然后调用RoInitialize或使用 WinRT 主样式函数(删除有关主线程的警告 C4447):

using namespace Platform;

int main(Array<String^>^ args) ....

参考:
在桌面应用程序中使用 C++/CX,从桌面应用程序调用
Windows 10 API

于 2018-10-23T11:56:12.517 回答