Наша компания имеет программное обеспечение на Аляске Xbase ++. Я хочу модернизировать GUI с WPF, не переписывая программное обеспечение в C#. В этом языке Аляски Xbase ++ у меня есть возможность вызывать функции C / C ++. Я полагаю, что возможно создать гибридную DLL, которая имеет управляемый код, но может вызываться из неуправляемого языка, так что делает stdcall.
Итак, я планирую написать DLL-оболочку, которая управляет всем, что нужно для создания окна WPF и элементов управления (и eventl oop, всего). На этом языке Аляски Xbase ++ я бы назвал эту DLL-оболочку для создания окна WPF и элементов управления в моем приложении.
Например: -WpfWrapper.DLL в C# DLL (или приложении, которое прослушивает данные из приложения Xbase ++):
Function CreateWpfWindow(title) {..}
Function CreateWpfButton(caption, x, y, parent) {..}
C# DLL, выполняющая "вещи WPF".
- На языке Alaska Xbase ++ у меня есть главное окно. Но я хочу модернизировать GUI, я хочу создать какое-то окно WPF в этом старом приложении Win32, поэтому я вызываю DLL:
nHandle=CreateWpfWindow("My WPF window in Alaska Xbase++!")
CreateWpfButton("My button", 100, 100, nHandle)
Это только мои мысли .. Может быть, есть другой способ , Но мне интересно, можно ли в ЛЮБОМ способе интегрировать окно WPF и элементы управления в старое приложение Win32? Я полагаю, что это возможно, либо через какую-нибудь DLL-оболочку, либо через какое-либо приложение-оболочку.
Пожалуйста, дайте мне несколько советов, как это может работать. Созданное окно WPF в моем старом приложении должно быть в фокусе и выше других windows. У меня есть HWND моего главного окна, я считаю, что это необходимо.