![](/img/trans.png)
[英]How to call windows runtime component from c++/cx uwp project?
[英]How do you install a Windows Runtime Component built in C++/CX into a C# project?
我有一個名為foo
的庫,它是用C ++ / CX編寫的。 我選擇了一個Windows運行時組件,因為我希望將它投射到C#,C ++和JavaScript中。 此外,我希望能夠分發庫,我不希望/允許使用者在與項目相同的解決方案中加載我的項目以及源文件。
MSDN上的說明僅演示了如何將Windows運行時組件項目包含在使用C#項目的解決方案中。 我知道有一種方法只能分發二進制文件,但我不知道如何。
這個問題已被問過一千次,但答案總是在同一個解決方案中有兩個項目,不完整或是一種解決方法。
我在Windows 8.1上使用Visual Studio 2013.4。
一種方法是創建組件的VSIX包。 請參閱演練:使用C ++創建SDK ,其中顯示了如何使用C#項目使用的WinRT組件執行此操作。
我研究並找到答案......它沒有很好地記錄,它不直觀,但是當你看到Windows運行時組件的工作情況時,它是值得的。
編譯C ++ / CX庫:
確保為Win32
, ARM
, x86
和x64
的Debug
和Release
所有排列編譯庫。
在C#中使用的說明:
在解決方案資源管理器中右鍵單擊“引用”,然后添加對Microsoft Visual C ++運行時包v12.0的引用。 然后使用適合您項目的配置(即Debug
/ ARM
)添加對您創建的二進制文件的引用。 此步驟很棘手,因為文件過濾器會提示您輸入.dll
,但您需要將過濾器設置為*.*
並選擇.winmd
文件。 然后卸載項目,找到剛剛添加的庫的<Reference>
標記。 <Reference>
下面會有一個<HintPath>
標簽,在<Reference>
你還需要添加<IsWinMDFile>true</IsWinMDFile>
和一個<Implementation>
標簽對,加載的是.dll
的名字。與.winmd
文件位於同一文件夾中。
有關更詳細的說明和信息,我強烈建議您訪問Mike Taulty的博客
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.