从 CLI C++应用程序加载库中的 C# WPF 窗体

本文关键字:WPF 窗体 CLI C++ 应用程序 加载 | 更新日期: 2023-09-27 18:32:06

我有一个用 C# 编写的 dll 文件,该文件与我的应用程序处于相同的解决方案中,该文件是用 C++ 编写的,其中一些文件设置为在/cli 标志下编译。我想在我的 C# dll 中加载 WPF 窗体,并将其显示在 C++/cli 应用程序中。

我已经将我的C++应用程序配置为显示 WPF 内容,因为我目前正在以编程方式将控件添加到 WPF 窗体上,但我无法了解如何在运行时从外部资源加载窗体。

从 CLI C++应用程序加载库中的 C# WPF 窗体

如果将控件引用添加到 CLI 项目,则应该能够访问控件;使用应用程序句柄>运行(您的窗口)方法。

可以像这样将外部 DLL 加载到项目中

Dim assembly As Assembly = Assembly.LoadFile(libraryPath & "filename.dll")
Dim type As Type = assembly.[GetType]("NameSpace.ClassName")
// i'm loading as a form here but can be any control
Dim frm As Form = TryCast(Activator.CreateInstance(type), Form)

最后一点,如果要在加载的窗体(上图)中加载类或控件,该类或控件也驻留在同一程序集中,则还需要先加载它,然后再在窗体中调用它