繁体   English   中英

我可以在 win32 应用程序中使用 WPF 吗?

[英]Can I use WPF in win32 application?

我们公司在Alaska Xbase++ 有一个软件。 我想用 WPF 现代化 GUI,而不用 C# 重写软件。 在这种阿拉斯加 Xbase++ 语言中,我可以调用 C/C++ 函数。 我相信,可以创建混合 DLL,它具有托管代码,但可以从非托管语言调用,因此执行 stdcall。

所以我的计划是我编写一个包装器 DLL,它管理所有东西以创建 WPF 窗口和控件(以及事件循环,一切)。 在这种阿拉斯加 Xbase++ 语言中,我会调用这个包装器 DLL 在我的应用程序中创建 WPF 窗口和控件。

例如:-WpfWrapper.DLL 在 C# DLL(或从 Xbase++ 应用程序侦听数据的应用程序)中:

Function CreateWpfWindow(title) {..}
Function CreateWpfButton(caption, x, y, parent) {..}

C# DLL 做“WPF 事情”。

- 在阿拉斯加 Xbase++ 语言中,我有一个主窗口。 但是我想对 GUI 进行现代化改造,我想在那个旧的 Win32 应用程序中创建一些 WPF 窗口,所以我调用了 DLL:

nHandle=CreateWpfWindow("My WPF window in Alaska Xbase++!")
CreateWpfButton("My button", 100, 100, nHandle)

这只是我的想法..也许还有其他方法。 但我想知道是否有可能以任何方式将 WPF 窗口和控件集成到旧的 Win32 应用程序中? 我相信它是通过一些包装器 DLL 或通过一些包装器应用程序。

请给我一些指导,这是如何工作的。 在我的旧应用程序中创建的 WPF 窗口必须在焦点上,并且高于其他窗口。 我有我的主窗口的 HWND,我相信这是必要的。

我不知道“Alaska Xbase++”是什么,但我猜你问的问题与你应该尝试的问题相反。 您不应该尝试通过从一些晦涩的编程环境调用 C# 来构建 GUI 应用程序。 您应该尝试将在晦涩的编程环境中实现的业务逻辑包装在 DLL 中,并从 C# 调用该逻辑。

Xbase++ 是否公开了 C 接口?

如果是这样,请创建一个调用 Xbase++ 代码的自定义 DLL,并将该 DLL 导入 WPF 应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM