我有一個C++庫,它具有在Windows運行時環境中使用它的功能。尋找.winmd路徑的靜態庫
我想用它作爲靜態庫。我以這種方式配置併成功構建它。我還能夠將其項目引用添加到我的用法中。
但是,當我試圖建立我要去的地方使用它的項目 - 我正在建立自己的錯誤:
pch.cpp : fatal error C1192: #using failed on 'D:..\mylib\mylib.winmd'
爲什麼找.winmd文件?它生成.lib文件。我在這裏做錯了什麼?
我有一個C++庫,它具有在Windows運行時環境中使用它的功能。尋找.winmd路徑的靜態庫
我想用它作爲靜態庫。我以這種方式配置併成功構建它。我還能夠將其項目引用添加到我的用法中。
但是,當我試圖建立我要去的地方使用它的項目 - 我正在建立自己的錯誤:
pch.cpp : fatal error C1192: #using failed on 'D:..\mylib\mylib.winmd'
爲什麼找.winmd文件?它生成.lib文件。我在這裏做錯了什麼?
我必須在我的.cxproj文件中添加以下項目以供製作得到真實添加到我的UWP作爲的.lib文件
<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>
#using
不是消耗靜態庫的正確方法。
包括標題,你需要
的的.lib文件添加到鏈接選項。或者(從我的角度來看更好)在源代碼中添加一個#pragma comment(lib,...)
。 lib文件應該位於鏈接器搜索的路徑中。您可以在鏈接器設置中調整鏈接器的路徑。
如果您引用的.NET C++/CLR組件創建爲.DLL #using是正確的方法。
我沒有使用庫中的任何東西。所以我認爲我現在不需要標題了。我只是從我的項目列表中添加了庫項目。 lib文件在目錄中。但爲什麼它一直在尋找.winmd。它應該查找.lib。 –
Windows運行時與靜態庫或.NET無關。這個答案沒有解決這個問題。 – IInspectable
我們展示的代碼行靜態庫。 – xMRi
.winmd文件是組件的類型庫。它扮演與普通庫的.h文件完全相同的角色,它包含由庫顯示的類型的聲明。 #using相當於#include。試圖把它變成一個靜態庫,嗯,應該是一個奇蹟或三個。我想你必須創建自己的工廠功能,現在是自動生成的。 *不要這樣做*是唯一的好建議。 –
*「它具有在Windows運行環境中使用它的功能」* - 該庫具有哪些功能?據我所知,Windows運行時語言投影只能使用一個庫來作爲一個.winmd文件。 – IInspectable