C# 我可以在win32应用程序中使用WPF吗?
我们公司在阿拉斯加有一个Xbase++软件。我想用WPF使GUI现代化,而不用用C#重写软件。在这个Xbase++语言中,我能够调用C/C++函数。我相信,创建混合DLL是可能的,它有托管代码,但可以从非托管语言调用,所以可以使用stdcall 因此,我的计划是编写一个包装器DLL,它管理创建WPF窗口和控件(以及eventloop,所有内容)的所有内容。在这个Xbase++语言中,我将调用这个包装器DLL来在我的应用程序中创建WPF窗口和控件 例如: -C#DLL(或侦听Xbase++应用程序数据的应用程序)中的WpfWrapper.DLL: C#DLL做“WPF事情” -在阿拉斯加Xbase++语言中,我有一个主窗口。但是我想使GUI现代化,我想在旧的Win32应用程序中创建一些WPF窗口,所以我称之为DLL:C# 我可以在win32应用程序中使用WPF吗?,c#,wpf,winapi,win32gui,xbase,C#,Wpf,Winapi,Win32gui,Xbase,我们公司在阿拉斯加有一个Xbase++软件。我想用WPF使GUI现代化,而不用用C#重写软件。在这个Xbase++语言中,我能够调用C/C++函数。我相信,创建混合DLL是可能的,它有托管代码,但可以从非托管语言调用,所以可以使用stdcall 因此,我的计划是编写一个包装器DLL,它管理创建WPF窗口和控件(以及eventloop,所有内容)的所有内容。在这个Xbase++语言中,我将调用这个包装器DLL来在我的应用程序中创建WPF窗口和控件 例如: -C#DLL(或侦听Xbase++应用程序
nHandle=CreateWpfWindow("My WPF window in Alaska Xbase++!")
CreateWpfButton("My button", 100, 100, nHandle)
这只是我的想法。。也许还有别的办法。但我想知道是否有可能以任何方式将WPF窗口和控件集成到旧的Win32应用程序中?我相信它可以,或者通过一些包装器DLL,或者通过一些包装器应用程序
请给我一些指导,这是如何工作的。在我的旧应用程序中创建的WPF窗口必须处于焦点位置,并且位于其他窗口之上。我有我的主窗口的硬件,我认为这是必要的。我不知道什么是“阿拉斯加Xbase++”,但我猜你问的问题与你应该尝试的相反。您不应该试图通过从一些模糊的编程环境调用C来构建GUI应用程序。您应该尝试将在模糊编程环境中实现的业务逻辑封装在DLL中,并从C#调用该DLL
Xbase++是否公开C接口
如果是这样,请创建一个调用Xbase++代码的自定义DLL,并将该DLL导入WPF应用程序。如果以Windows 10为目标,则可以使用Windows演示平台。与WPF不同,它有一个本机的非托管接口。什么是Windows演示平台?你的意思是通用Windows平台,又称UWP吗?@cle:微软决定不给它命名的是UI技术。UWP应用程序使用它,但经典桌面应用程序可以通过访问它。有了UI,平台将与UWP SDK完全解耦。
nHandle=CreateWpfWindow("My WPF window in Alaska Xbase++!")
CreateWpfButton("My button", 100, 100, nHandle)