QT和C#在桌面软件开发技术领域的对比和相互调用

自媒体运营教程 产品运营 5

谈到QT和C#配合使用,似乎在Windows桌面软件开发这个细分技术领域还真有可能性。

QT和C#开发桌面软件的对比

一般来讲,QT开发桌面应用有传统的QWidgets+QSS这一套, C#也有传统的WinForm这一套;QT还有新一代的QT QML + JavaScript这一套,C#也有新一代的WPF这一套。另外,QT和C#还有一个很大的共同点,两者各自分别是由一家商业公司控制,QT是QT Company,C#是Microsoft。个人认为这两套桌面软件开发框架,技术本质上没有太大的差别。

以下文字中有时所讲的QT可能实际上是QWidgets + QSS,或者QT QML +JavaScript; 所讲的C#可能实际上是WinForm,或者WPF。

QT和C#的技术路线表面上看起来是不同的,但是抛开C++和C#语言层面的差异不说,QT和C#在桌面软件开发这个细分技术领域来讲,底层逻辑都是相通的:为了追求最好的界面渲染性能,最终都是不得不借助GPU的能力。

C#调用QT

C++语言和C#语言开发的应用程序代码之间的配合使用,可以借助于C语言作为中间人。 C++和C#都可以调用C语言动态链接库中的函数。因此可以把QT代码封装到DLL中并导出一些C语言函数,然后给C#调用。

相关影片资源迅雷下载推荐

【可视化大屏教程】用Python开发智慧城市数据分析大屏 ...

一、开发背景本文首发公众号「老男孩的平凡之路」您好,我是 @马哥python说 ,这是我独立开发的Python可视化大屏,看下演示效果:这个大屏,是通过pyecharts可视化开发框架实现。下面详细介绍,这个大屏的实现过程。 ...

公众号开发,【可视化大屏教程】用Python开发智慧城市数据分析大屏 ...

QT调用C#

C#支持开发ATL COM组件,C#代码可以导出ATL COM组件接口,QT中可以调用ATL COM组件,,因此QT可以调用到C#的代码。当然,这个思路也是C/C++代码调用C#代码的常见套路。

调用EXE

前面讨论的都是进程内通过DLL进行调用。如果没法搞成DLL,则可以通过调用EXE创建进程来实现C#和QT应用之间的相互调用。

Windows窗口消息

QT和C#应用程序中都可以创建Windows原生窗口,而且都可以直接调用Windows API,因此可以通过Windows窗口消息实现跨进程通讯。

进程间通信IPC)

QT和C#应用程序都提供了丰富多彩的进程间通信功能,可以实现同一个主机内部的跨进程通讯。另外两者都可以直接调用操作系统原生 IPC API。一般来讲IPC包括mutex、semaphore、event or condition variable,shared memory、pipe等。

网络通讯

QT和C#应用程序都提供了丰富多彩的网络通讯功能,可以实现跨主机的进程间通讯,同样两者都可以直接调用操作系统原生socket API。


综上所述,QT和C#配合使用还是有很多种可能性的。上面讨论的只是目前想到的一些可能性而已。

相关影片资源迅雷下载推荐

小白也能写小程序

从某种角度来说,开发小程序如同完成前端页面的设计与开发一样,都有似曾相识的感觉。在本文中,我们将会以一个具体的小程序为例,带领大家从零到一完成一个小程序的开发流程,并将这个小程序上传到 http://FinClip. ...

小程序开发,小白也能写小程序

企业网站建设与开发最低只要299元起,包含域名服务器,需要的联系QQ345424724,电话15516990022,18530226930

标签: 软件开发 QT和C#在桌面软件开发技术领域的对比和相互调用

抱歉,评论功能暂时关闭!