VS2012错误C1107

aCu*_*ria 10 c++ visual-c++ windows-runtime visual-studio-2012

我收到以下错误:

fatal error C1107: could not find assembly 'platform.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable
Run Code Online (Sandbox Code Playgroud)

重现步骤

0)创建一个新的空项目

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

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

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

4)尝试编译

我试图手动比较和更改项目设置,以匹配一些示例代码,但似乎没有任何工作.

ixS*_*Sci 13

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

  1. 如果您不想针对WinRT进行编码,只需将"Consume ..."设置为false,问题就会消失
  2. 如果要对WinRT进行编码,则应执行其他步骤:转到" 常规"并将" Windows应用商店应用支持"设置为true

  • 该选项与哪个标志相关联?我有一个Cmake创建了vs项目,那么我该如何启用呢? (2认同)

noe*_*cus 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) ....
Run Code Online (Sandbox Code Playgroud)

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