![](/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.