gpt4 book ai didi

asp.net - ASP.NET 中的 UWP API

转载 作者:行者123 更新时间:2023-12-02 01:20:10 25 4
gpt4 key购买 nike

我想在 ASP.NET 代码隐藏 DLL 中使用一段 Windows 10 特定的 UWP API(特别是 Windows.Graphics.Printing3D 东西)。有什么办法吗?

最佳答案

在寻找解决此问题的仅限 .NET 的解决方案时,我找到了一种比较干净的方法 - 一个 Win32/64 C++ DLL,它会使用 UWP API 并向 .NET 提供基于 COM 或 P/Invoke 的接口(interface)。 NET.

创建一个常规的 Win32 DLL。为 .NET 构建一个接口(interface)以使用 - 导出的函数或对象,视情况而定。在我的例子中,一个导出函数就可以了。在项目的 C/C++ 设置中,进行以下更改:

  • 在常规下,将 Consume Windows Runtime Extensions 设置为 Yes
  • 在常规下,将 Additional #using Directories 设置为:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcpackages;C:\Program Files (x86)\Windows Kits\10\UnionMetadata(假设是 Visual Studio 2015)
  • 在 Code Generation 下,将 Enable Minimal Rebuild 设置为 No(仅对 Debug 设置 Yes,对 Release 不设置)。

然后以通常的 C++/CX 方式在 DLL 中实例化和使用 UWP 组件,就像在商店应用程序中一样,通过 using namespace Windows::...ref new

在这种方法中,您失去了位数不可知论;非托管 DLL 不能是“任何 CPU”。你赢了一些,你失去了一些。此外,如果系统上没有 Visual C++ 可再分发程序包,该站点将无法运行。另一方面,它可能比 .NET 应用程序运行得更快;较少管理/本地边界交叉点。

灵感:"Using C++/CX in Desktop apps" by Pavel Y.

关于asp.net - ASP.NET 中的 UWP API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40613882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com