|
|
1
17
正如您注意到的,无法从通用Windows应用程序访问任意COM对象。很可能您的第三方库也使用了在Windows运行时中无法直接使用的API。 假设您打算侧载应用程序而不是通过存储进行部署,则可以通过 Brokered Windows Runtime Components for side-loaded Windows Store apps (文档适用于Windows 8.1,但仍适用于Windows 10)。此功能专为企业应用程序设计,以提供现代UI,同时仍能访问现有功能。 如果您希望通过存储进行部署,那么您将受限于Windows运行时上下文中允许的API,并且不能使用代理Windows运行时组件。 如果你的主要目标是通过商店进行部署,而你不需要转换为通用应用程序,那么看看即将推出的 Windows Bridge for Classic Windows apps (also called âProject Centennialâ) 这将允许打包当前的.Net项目用于商店部署,并允许扩展它以使用一些UWP功能。 |
|
|
2
1
你肯定知道,UWP应用程序是沙盒应用程序,他们几乎需要许可才能做任何事情。例如,他们不能访问整个文件系统,只能访问沙盒存储区域。 当您希望在Windows应用商店中发布应用程序时,应用程序认证工具包会检查您的应用程序是否未执行不允许执行的操作。 您提供的链接(Win32和COM for Windows运行时应用程序…)描述了允许的Win32/COM调用列表。Microsoft允许您调用这些方法,并且只能调用它们。 使用Visual Basic COM对象似乎遥不可及。。。 这与安全限制有关,但也与可用功能有关:例如,无法在Windows Phone(regsrvr32)上注册COM对象。 你可以 call any COM object (or Win32 API) 在WPF应用程序中使用C#,当然也使用C++。不确定如果您尝试在UWP应用程序中复制/粘贴此类代码会发生什么。您可能可以在Windows桌面上运行代码,但您肯定无法将应用程序提交到Windows应用商店,而且它在其他UWP平台上也无法运行。微软 doesn't give many details about calling COM objects from UWP app . 我猜UWP不太适合/适应/兼容“旧”COM对象……我不确定从WPF迁移到UWP会给您带来什么? |
|
|
3
0
UWP或Windows通用应用程序听起来不像是正确的解决方案。UWP不允许COM,因为它在所有平台上都不可用。我假设您希望将windows store用于当前WPF应用程序的部署机制。Windows 10确实为WPF应用程序提供了微软所称的桥梁,您可以将WPF应用作为appx包部署到Windows商店中。 希望你用这个解决方案重写的东西很少 有关如何在APPx文件中部署WPF应用程序的更多信息,请参阅以下视频。 https://channel9.msdn.com/Events/Build/2015/2-692 |
|
|
4
0
在另一个站点上,出于安全原因,UWP/WinRT方式似乎是MS在操作系统上运行的唯一方式。 我不知道沙盒是否能够检测到从允许的对象调用的旧的自定义COM对象上的不允许的操作。我希望这对沙盒来说是可能的。 |
|
Feem · C中COM对象的实际地址# 2 年前 |
|
|
Zee · 如何从Windows SDK打开文件? 13 年前 |
|
|
Yippie-Ki-Yay · 使用非托管代码中的托管COM对象 13 年前 |
|
|
Gilad · 关于C#与非托管C的互操作性的续篇++ 13 年前 |