寻找.winmd道路的静态图书馆

时间:2017-10-12 11:57:56

标签: visual-studio-2015 c++-cx

我有一个c ++库,它可以在Windows运行时环境中使用它。

我想将它用作静态库。我以这种方式配置并成功构建它。我还能够将它的项目引用添加到我的用法中。

但是当我尝试构建我将要使用它的项目时 - 我遇到了构建错误:

pch.cpp : fatal error C1192: #using failed on 'D:..\mylib\mylib.winmd'

为什么要查找.winmd文件?它生成.lib文件。我在这做错了什么?

2 个答案:

答案 0 :(得分:0)

我必须在我的.cxproj文件中添加以下项目,以便创建静态库,将其作为.lib文件添加到我的UWP中

<Keyword>StaticLibrary</Keyword>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>        
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>    
<WindowsTargetPlatformMinVersion>10.0.10586.0
 </WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>    
<Link>
  <SubSystem>Console</SubSystem>
  <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
  <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>

答案 1 :(得分:-2)

#using不是使用静态库的正确方法。

  1. 包括您需要的标题

  2. 将.lib文件添加到链接器选项。或者(从我的观点来看更好)在源代码中添加#pragma comment(lib,...)。 lib文件应位于链接器搜索的路径中。您可以在链接器设置中调整链接器的路径。

  3. 如果您正在引用以.DLL形式创建的.NET C ++ / CLR组件#using是正确的方法。