C# Can C++/CX简化我的(非WinRT)WPF应用程序? C++/CX似乎使与C++相比,本地C++与C++的接口更容易和更直接。 但是我可以在WinRT之外的老式WPF桌面风格应用程序中使用C++/CX吗? 澄清:我的WPF应用程序

C# Can C++/CX简化我的(非WinRT)WPF应用程序? C++/CX似乎使与C++相比,本地C++与C++的接口更容易和更直接。 但是我可以在WinRT之外的老式WPF桌面风格应用程序中使用C++/CX吗? 澄清:我的WPF应用程序,c#,wpf,windows-runtime,c++-cx,C#,Wpf,Windows Runtime,C++ Cx,Can C++/CX简化我的(非WinRT)WPF应用程序? C++/CX似乎使与C++相比,本地C++与C++的接口更容易和更直接。 但是我可以在WinRT之外的老式WPF桌面风格应用程序中使用C++/CX吗? 澄清:我的WPF应用程序“包装”了一个旧的Windows32应用程序代码。所以我在与本地C++进行交互,但是在C++中,使用C++和C++来处理同样的应用程序是很困难的。 < P>不,你不能在WINRT之外使用C++/CX——它依赖于Windows运行时元数据,并且没

Can C++/CX简化我的(非WinRT)WPF应用程序?

C++/CX似乎使与C++相比,本地C++与C++的接口更容易和更直接。 但是我可以在WinRT之外的老式WPF桌面风格应用程序中使用C++/CX吗?


澄清:我的WPF应用程序“包装”了一个旧的Windows32应用程序代码。所以我在与本地C++进行交互,但是在C++中,使用C++和C++来处理同样的应用程序是很困难的。

< P>不,你不能在WINRT之外使用C++/CX——它依赖于Windows运行时元数据,并且没有非WINRT-API的元数据。

< P>是的,你可以。WinRT和Win32是可互操作的,只是任何使用WinRT世界以外任何东西的应用程序都不能在appstore中销售。

C++/CX生成纯本机代码,这与C++/CLI不同。一些互操作是可能的,因为C++/CX ref类是隐藏的COM。不过注册会很棘手,WinRT使用了一个非常不同的部署场景(都在.zip中)。你得设法把它登记一下。C++/CX肯定没有生成DllRegisterServer方法,以便Regsvr32.exe可以工作。啊,好吧,所以C++/CX与COM类似,但并不完全相同。c#apps(WinRT外部)无法轻松引用它。理论上(因为它是幕后的COM),它们可以通过COM可调用包装器在.NET中访问……我想他说的是用c++/CX编写自己的WinRT组件,然后从.NET WPF应用程序引用该组件。除非WinRT投影仅为Metro风格的应用程序启用,并且在desktop.NET中不可用,否则在我看来,这实际上应该是可行的。Pavel:你说得对,应该是可行的。我猜想他是在尝试使用C++/CX来简化其他COM操作。在Metro风格的应用程序范围之外安装和激活WinRT对象是很困难的。没有安装它的软件包。谢谢Pavel-major bummer。C++/CLI是桌面的互操作故事,而C++/CLI在metro风格的应用程序中已经过时,而C++/CX是metro的互操作故事,在桌面上是不允许的。来吧,MS…给我们跨平台的C++/CX!对不起,我以为这是关于C++/CX的。是的,CLR查看非第一方应用程序的包标识。我确实说过它不起作用。如果它真的起作用,那将是一个我们必须修复的bug。