我有一个用 C# 编写的 dll 文件,它与我用 C++ 编写的应用程序的解决方案相同,其中一些文件设置为在 /cli 标志下编译。我想在我的 C# dll 中加载 WPF 表单并将其显示在 C++ /cli 应用程序中。
我已经将我的 C++ 应用程序配置为显示 WPF 内容,因为我目前正在以编程方式将控件添加到 WPF 表单中,但我无法找到如何在运行时从外部资源加载表单。
如果您将控件引用添加到您的 CLI 项目,您应该能够访问您的控件;让应用程序句柄使用ApplicationHandle->Run(YourWindow)方法。
您可以像这样将外部 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)
最后一点,如果您在加载的表单(上图)中加载一个类或控件,该表单也驻留在同一个程序集中,您还需要先加载它,然后在表单中调用它