Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在win32应用程序中使用WPF吗?_C#_Wpf_Winapi_Win32gui_Xbase - Fatal编程技术网

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

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++应用程序

我们公司在阿拉斯加有一个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:

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)