请教一个C的GUI框架

786 views
Skip to first unread message

Todd Gao

unread,
Nov 19, 2011, 2:07:30 AM11/19/11
to pon...@googlegroups.com
最近要做一个基于Winpcap的作业,用c语言编写,要求最好有gui,网上找了很长时间c语言的gui框架,没有实质的发现。请教列表里的同学,有没有推荐的。
或者如果我用c语言写个基于winpcap的应用,可以通过什么办法和把其他语言(比如c#、java)实现的gui程序结合起来呢?

谢谢!

Tux9

unread,
Nov 19, 2011, 6:22:42 AM11/19/11
to pon...@googlegroups.com
opengl, qt

2011/11/19 Todd Gao <todd.g...@gmail.com>

Bearice Ren

unread,
Nov 19, 2011, 7:03:24 AM11/19/11
to pon...@googlegroups.com
Qt是C++的,OpenGL⋯⋯
目前能想到的纯C的GUI框架只有GTK+ Wireshark就是基于GTK+的
另外Windows下的GUI其实也可以用C做,不用MFC那一坨就好了

Jaze Lee

unread,
Nov 19, 2011, 8:32:16 AM11/19/11
to pon...@googlegroups.com
就是因为 微软的api什么的都是一坨一坨的才不喜欢,没有linux简洁啊,仅代表个人观点

itianyy

unread,
Nov 19, 2011, 8:43:57 AM11/19/11
to pongba
这点同意,也因如此,不太喜欢win上的核心编程,不过微软的好像什么都是一坨一坨的,不只是windows 的api,这就是公司风格
 
 
2011-11-19

itianyy

发件人: Jaze Lee
发送时间: 2011-11-19  21:32:43
收件人: pongba
抄送:
主题: Re: [TL] 请教一个C的GUI框架

杨欣

unread,
Nov 19, 2011, 9:04:37 AM11/19/11
to pon...@googlegroups.com
都差不多吧,linux的接口虽然差不多,但是很多内部的常量差得远。
--
_______杨欣_______

Milo Yip

unread,
Nov 19, 2011, 9:15:03 AM11/19/11
to pon...@googlegroups.com
1. http://www.tecgraf.puc-rio.br/iup/ 是ANSI C的GUI Toolkit,本人沒用過。
2. 可以用 http://www.swig.org/ 來為 C
程序產生其他語言用的binding。例如產生Java/C#的binding,那麼就可以在Java/C#調用你的C語言接口。

2011/11/19 Todd Gao <todd.g...@gmail.com>:


> 最近要做一个基于Winpcap的作业,用c语言编写,要求最好有gui,网上找了很长时间c语言的gui框架,没有实质的发现。请教列表里的同学,有没有推荐的。
> 或者如果我用c语言写个基于winpcap的应用,可以通过什么办法和把其他语言(比如c#、java)实现的gui程序结合起来呢?
> 谢谢!

--
Milo Yip

http://www.cnblogs.com/miloyip/
http://weibo.com/miloyip/
http://twitter.com/miloyip/

Todd Gao

unread,
Nov 19, 2011, 9:15:42 AM11/19/11
to pon...@googlegroups.com
楼歪了……
我也找到了gtk+,但是要基于gtk+开发需要一大堆附加的库,搞的快像mfc了,所以没打算用gtk+。现在能想到的是win32 api,但是太麻烦了。

2011/11/19 杨欣 <xyan...@gmail.com>



--
这封邮件来自我(about)的新邮箱地址,希望您能添加它到通讯录并替代原地址使用。原地址仍然有效,所有邮件将转发至此。

Todd Gao

unread,
Nov 19, 2011, 9:17:20 AM11/19/11
to pon...@googlegroups.com
这个不错,我去看看,多谢!

2011/11/19 Milo Yip <mil...@gmail.com>

Xinyu LIU

unread,
Nov 20, 2011, 9:06:14 PM11/20/11
to pon...@googlegroups.com
给你个建议,直接上TK,底层仍然用C写,然后GUI用TK折腾一下就OK了。
至少节省你一半的时间。用C写GUI近乎自虐。这是*NIX上的通用玩法。

2011/11/19 Todd Gao <todd.g...@gmail.com>



--
Larry, LIU Xinyu
https://sites.google.com/site/algoxy/
https://github.com/liuxinyu95/AlgoXY

Shujie Shang

unread,
Nov 20, 2011, 10:40:27 PM11/20/11
to pon...@googlegroups.com
把数据放MYSQL里面,用个网页展示出来

Todd Gao

unread,
Nov 20, 2011, 11:26:25 PM11/20/11
to pon...@googlegroups.com
tk没用过,不过研究过tk的python封装tkinter,另外也在用modelsim好像也是tcl写的ui,但是感觉tcl写的ui在Windows上面不是很流畅,现在也在想底层用c写,用python做ui,不过python也没有特别喜欢的ui库

2011/11/21 Xinyu LIU <liuxi...@gmail.com>

Todd Gao

unread,
Nov 20, 2011, 11:28:54 PM11/20/11
to pon...@googlegroups.com
这个用户交互可能不很方便,不过我在想sqlite存储抓包的结果,这样提交的时候或许会方便一些

2011/11/21 Shujie Shang <heno...@gmail.com>

Walter Xin

unread,
Nov 21, 2011, 4:09:00 AM11/21/11
to pon...@googlegroups.com, pon...@googlegroups.com
以前的一个项目里用java写GUI, 用C写接口,用C++实现

Sent from my iPhone

qiaojie

unread,
Nov 21, 2011, 8:13:27 AM11/21/11
to pon...@googlegroups.com
如果用.net的话,用c#和WinForm写GUI,用C++/CLI做胶水粘合C是很方便的。


2011/11/19 Todd Gao <todd.g...@gmail.com>

Wang Fei

unread,
Nov 21, 2011, 9:50:57 AM11/21/11
to pon...@googlegroups.com
大家在选GU框架的时候主要考虑两个吧
1,一个是native look
2,一个是开发效率

wxpython 和 Tk/TCL 都很快,但是打包就不是很容易的事情,尤其是自己做一
些小应用的时候,都喜欢把依赖,数据库打包发布,省去部署的麻烦



----
pythonee



2011/11/21 Xinyu LIU <liuxi...@gmail.com>

LK

unread,
Nov 21, 2011, 9:51:04 PM11/21/11
to TopLanguage
SDL 也不错。

On Nov 21, 9:50 am, Wang Fei <pytho...@gmail.com> wrote:
> 大家在选GU框架的时候主要考虑两个吧
> 1,一个是native look
> 2,一个是开发效率
>
> wxpython 和 Tk/TCL 都很快,但是打包就不是很容易的事情,尤其是自己做一
> 些小应用的时候,都喜欢把依赖,数据库打包发布,省去部署的麻烦
>
> ----
> pythonee
>

> 2011/11/21 Xinyu LIU <liuxiny...@gmail.com>


>
>
>
>
>
>
>
> > 给你个建议,直接上TK,底层仍然用C写,然后GUI用TK折腾一下就OK了。
> > 至少节省你一半的时间。用C写GUI近乎自虐。这是*NIX上的通用玩法。
>

> > 2011/11/19 Todd Gao <todd.gao.2...@gmail.com>
>
> >> 这个不错,我去看看,多谢!
>
> >> 2011/11/19 Milo Yip <milo...@gmail.com>
>
> >>> 1.http://www.tecgraf.puc-rio.br/iup/ 是ANSI C的GUI Toolkit,本人沒用過。
> >>> 2. 可以用http://www.swig.org/來為 C
> >>> 程序產生其他語言用的binding。例如產生Java/C#的binding,那麼就可以在Java/C#調用你的C語言接口。
>
> >>> 2011/11/19 Todd Gao <todd.gao.2...@gmail.com>:


>
> >>> 最近要做一个基于Winpcap的作业,用c语言编写,要求最好有gui,网上找了很长时间c语言的gui框架,没有实质的发现。请教列表里的同学,有没有推荐的。
> >>> > 或者如果我用c语言写个基于winpcap的应用,可以通过什么办法和把其他语言(比如c#、java)实现的gui程序结合起来呢?
> >>> > 谢谢!
>
> >>> --
> >>> Milo Yip
>
> >>>http://www.cnblogs.com/miloyip/
> >>>http://weibo.com/miloyip/
> >>>http://twitter.com/miloyip/
>
> >> --

> >> 这封邮件来自我(about <https://plus.google.com/108595163199753435705/about>

Xinyu LIU

unread,
Nov 22, 2011, 10:14:20 PM11/22/11
to pon...@googlegroups.com
呵呵,我就考虑第二个。如果要追究好看,那我就不干了。
要把有限的时间,投入到最重要的事情里。
弄好看这种事情,可以交给其他人来做。

原则上,能用REPL,我就不用命令行,能用命令行,我就不用GUI,万不得已要用GUI了,我就找省事快速的。

2011/11/21 Wang Fei <pyth...@gmail.com>

Yili Zhao

unread,
Nov 22, 2011, 10:26:24 PM11/22/11
to pon...@googlegroups.com
@qiaojie
能不能给出一个实际的工程例子?比如说在Visual Studio 2010里面先用C语言写一个简单的动态链接库,然后用C++/CLI做胶水,最后用C#和WinForm做用户界面,把三者都连接起来。
谢谢!

Yili Zhao

unread,
Nov 22, 2011, 10:28:52 PM11/22/11
to pon...@googlegroups.com
在Windows下面,用C语言的图形用户界面框架应该是Win32 APIs;在Linux下面,最成熟的基于C语言的框架应该是GTK+。
在Linux下面,也可以用C语言编写核心功能,然后用PyGTK做用户界面。

qiaojie

unread,
Nov 22, 2011, 10:46:48 PM11/22/11
to pon...@googlegroups.com
不需要用动态链接库,C++/CLI本身就是C++的,你可以在里面直接写原生代码,然后再写几个ref class托管类向.net暴露调用接口就可以了。



2011/11/23 Yili Zhao <pan...@gmail.com>

Liang Peng

unread,
Nov 23, 2011, 4:53:26 AM11/23/11
to pon...@googlegroups.com
Win32 API 挺好用的~

--
Best regards,
Peng Liang

sagasw

unread,
Nov 23, 2011, 9:15:22 AM11/23/11
to pon...@googlegroups.com
这种我没碰到,但是问题不大。
更多的用法是COM + PIA + DotNet
这个套路用的更多,但是要求也比较高,得会COM,
但是过去的windows应用基本都是COM的,很少有纯C

------------------------------------------
blog: http://sunxiunan.com/
C++, Lua, living in Dalian
http://twitter.com/sagasw
------------------------------------------


2011/11/23 Yili Zhao <pan...@gmail.com>

Yili Zhao

unread,
Nov 27, 2011, 3:11:19 AM11/27/11
to pon...@googlegroups.com
@sagasw
请问什么是PIA?

Yili Zhao

unread,
Nov 27, 2011, 3:14:06 AM11/27/11
to pon...@googlegroups.com
@qiaojie
有一些已有的库是用C或者是C++写的,如果想用C#和WinForm做界面,如何使用C++/CLI做胶水?
最好能够有一个设计的例子。
谢谢!

sagasw

unread,
Nov 27, 2011, 7:56:40 AM11/27/11
to pon...@googlegroups.com
PIA Primary Interop Assembly,简单理解就是DotNet包装COM的一个办法
非常容易。

------------------------------------------
blog: http://sunxiunan.com/
C++, Lua, living in Dalian
http://twitter.com/sagasw
------------------------------------------


2011/11/27 Yili Zhao <pan...@gmail.com>
@sagasw
请问什么是PIA?

Todd Gao

unread,
Nov 28, 2011, 8:41:10 PM11/28/11
to pon...@googlegroups.com
不如直接用C#的p/invoke,c++/cli本身就是一种很奇怪的东西,算是微软的实验品

2011/11/27 Yili Zhao <pan...@gmail.com>

qiaojie

unread,
Nov 28, 2011, 10:45:33 PM11/28/11
to pon...@googlegroups.com
c++/cli不是实验品,因为它的定位就是一个小众的东西,只适合用来做胶水,直接用于dotnet或者C++开发都不合适,所以了解的人不多。但是c++/cli在做胶水方面要比p/invoke或COM简单而且高效很多,p/invoke对参数的marshaling/unmarshling是用反射来做的,效率比较低,而c++/cli可以直接用代码完成这层转换,另外c++/cli在managed/unmanaged代码之间的切换开销要比p/invoke小一个数量级。
 


 
2011/11/29 Todd Gao <todd.g...@gmail.com>

Serenade

unread,
Dec 6, 2011, 3:16:14 AM12/6/11
to pon...@googlegroups.com
既要背c++运行库,又要背.net运行库。。。还是果断Qt吧

--
Thanx & Regards,
小溪同学

CPU rong

unread,
Dec 16, 2011, 5:54:24 AM12/16/11
to pon...@googlegroups.com
前几天看一个摄像头采集的程序,发现SDL好像可以做界面之类的,不过具体没有了解过...我使用qt,不过在不了解很深的情况下使用起来,还是有很多不能理解的问题产生....

techabc

unread,
Dec 27, 2011, 12:57:54 AM12/27/11
to pon...@googlegroups.com
搬运一个已经被猛人移植到golang了的,
IUP : www.tecgraf.puc-rio.br/iup

阿卜

unread,
Dec 27, 2011, 1:11:44 AM12/27/11
to pon...@googlegroups.com
SDL可以做UI以及Framework,我司有一款产品的模拟就用的SDL。
复杂度未知,因为我只用过,没看过里面的实现。

siqiao chen

unread,
Dec 27, 2011, 1:31:34 AM12/27/11
to pon...@googlegroups.com
SDL做界面?这个会不会太复杂啊。是不是想用基于SDL二次开发的UI库? 

2011/12/16 CPU rong <smy19...@gmail.com>

Chunlin Zhang

unread,
Dec 27, 2011, 8:09:30 PM12/27/11
to TopLanguage
这种问题怎么能不去看 wikipedia 呢?
http://en.wikipedia.org/wiki/List_of_widget_toolkits
看 2.5.1 Based on C or C++ (including bindings to other languages) ,估计列得
比较全了

王兵兵

unread,
Feb 7, 2012, 5:55:45 AM2/7/12
to pon...@googlegroups.com
Why not use GTK+? According to my knows, Wireshark just uses GTK+ to inplment its GUI.

在 2011年12月6日 下午4:16,Serenade <seren...@gmail.com>写道:

白志伟

unread,
Feb 7, 2012, 9:16:21 PM2/7/12
to pon...@googlegroups.com
简单点的,ncurse,复杂点的,microwindows,ftk也很小吧
Reply all
Reply to author
Forward
0 new messages