Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将C++/CX中内置的Windows运行时组件安装到C项目中?_C#_Windows Runtime_C++ Cx_Winrt Component - Fatal编程技术网

C# 如何将C++/CX中内置的Windows运行时组件安装到C项目中?

C# 如何将C++/CX中内置的Windows运行时组件安装到C项目中?,c#,windows-runtime,c++-cx,winrt-component,C#,Windows Runtime,C++ Cx,Winrt Component,我有一个名为foo的库,它是用C++/CX编写的。我选择了一个Windows运行时组件,因为我希望它被投影到C、C++和JavaScript中。此外,我希望能够分发库,并且我不希望要求/允许使用者将我的项目以及源文件加载到与他们的项目相同的解决方案中 MSDN上的说明仅演示如何将Windows运行时组件项目包含在使用C项目的解决方案中。我知道有一种方法可以只分发二进制文件,但我不知道如何分发 这个问题已经被问了一千次,但答案总是有两个项目在同一个解决方案中,是不完整的或是一个变通方法 我正在Wi

我有一个名为foo的库,它是用C++/CX编写的。我选择了一个Windows运行时组件,因为我希望它被投影到C、C++和JavaScript中。此外,我希望能够分发库,并且我不希望要求/允许使用者将我的项目以及源文件加载到与他们的项目相同的解决方案中

MSDN上的说明仅演示如何将Windows运行时组件项目包含在使用C项目的解决方案中。我知道有一种方法可以只分发二进制文件,但我不知道如何分发

这个问题已经被问了一千次,但答案总是有两个项目在同一个解决方案中,是不完整的或是一个变通方法


我正在Windows 8.1上使用Visual Studio 2013.4。

我研究并找到了答案。。。它没有很好的文档记录,也不直观,但当您看到Windows运行时组件的工作情况时,值得一试

编译C++/CX库:

确保在Win32、ARM、x86和x64中为调试和发布的所有排列编译库

使用C语言的说明:

右击解决方案资源管理器中的引用,并添加对微软VisualC++运行时包V12.0的引用。然后添加对您为项目创建的具有适当配置的二进制文件的引用,即Debug/ARM。这一步很棘手,因为文件过滤器会提示您输入.dll,但您需要将过滤器设置为*.x并选择.winmd文件。然后卸载项目,找到刚刚添加的库的标记。将在下面有一个标记,并且在下面还需要添加true和一个标记对,该标记对加载了与.winmd文件位于同一文件夹中的.dll的名称


有关更详细的说明和信息,我强烈建议访问

一种方法是创建组件的VSIX包。请参阅,它确切地显示了如何使用C项目使用的WinRT组件来实现这一点。

没有这种方法。商店应用程序所需的组件必须始终包含在用户从商店下载的软件包中。有一个很好的理由,有电话或板岩的人没有机会解决DLL地狱问题。OP没有提到不包括组件本身,即DLL。他说,他希望将组件作为一个库来供其他人使用,而不必分发合法的请求的源文件和项目文件。C++可以快速地演示如何在相同的测试应用程序中消费WRET组件,即C++-C++、C+C等。在C++项目中,当我试图在我的答案中解决C++时,实际上有微妙的细微差别必须被尊重。我想知道,你是否尝试创建一个V6,这不是很容易…然后吃掉它?因为根据我的经验,当你用正确的标志/ZW创建一个C++/CX组件时,你将它添加到一个C win应用程序中应该不会有问题。我不会否决这个,因为这个方法可以工作。但是,您能想象一下,当用户界面建议的唯一选项是DLL时,向客户机提供一个库,用于VS项目,并指示他在强制选择WINMD后向您的库添加引用,卸载项目,以文本形式打开项目文件,并手动添加实现标记吗?我将不得不不顾一切地消费这样的外部图书馆。。。