簡體   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