我想用 C 语言开发一个有操作界面的程序,就像一些通用 exe 程序一样,网上有没有好的资料示例可学习?

2021-01-20 19:04:45 +08:00
 Tlin

就跟普通的 PC 程序一样,能够安装在电脑上,上面有一些操作按钮、输入框等等

6872 次点击
所在节点    C
69 条回复
loading
2021-01-20 19:07:35 +08:00
关键字:c 语言 gtk
yishengD
2021-01-20 19:10:48 +08:00
《 Windows 程序设计(第 5 版+珍藏版)》
ysc3839
2021-01-20 19:13:42 +08:00
建议放弃 C,去学 C++,然后用 Qt 开发。
SuperMild
2021-01-20 19:18:19 +08:00
C 也是有一些 GUI 库,但用起来应该不会好用。一般如果需要跨平台,应选择 Qt 或 Electron 或 Java, 如果只是 win 可以选择 .Net 或 AHK

另外 python 有好几个简单的 GUI 库,应该都会比 C 好用一些。
northisland
2021-01-20 19:18:43 +08:00
c 不是做 ui 的,

要弄可以试一下 swift,和 c 对接功能超容易,接口都不用写。
Tlin
2021-01-20 19:18:45 +08:00
@ysc3839 哈哈 没接触过 C++,不知坑怎样。
Tlin
2021-01-20 19:20:21 +08:00
@SuperMild 发觉自己傻了 忘记了 Python
stirlingx
2021-01-20 19:20:28 +08:00
MFC 侯杰
SuperMild
2021-01-20 19:24:43 +08:00
@Tlin python 里最最易学的是 appJar, 可能是世界上最易学易用的 GUI 库,缺点是界面非常简陋。
ysc3839
2021-01-20 19:40:11 +08:00
@Tlin 我认为 C 的坑更多。比如说 C 没有 RAII,需要自己手动释放。
hoyixi
2021-01-20 19:41:11 +08:00
你需要一个 GUI 库
thedrwu
2021-01-20 20:33:14 +08:00
其实 win32api ( user32.dll )小巧又好用,C 语言就够,linux 下能轻易地移植到 libwine 。Dialog 也能直接画。
laminux29
2021-01-20 20:37:49 +08:00
C/C++开发 GUI 类型的项目,选 QT,无论是对于工程、可实现性、学习性以及以后工作发展,综合性价比都是最高的。
AndyAO
2021-01-20 20:38:07 +08:00
如果你只在 Windows 上用的话,那么就应该调用 Win32Api 直接进行绘制.

所以上面几位提到的关于 Windows 的书籍很值得看, 配合官方文档基本上就够了.

还有就是目前 windows 开发建议使用 C++而不是 C(上面提到的 MFC 是对 Win32Api 的 C++封装),因为 Visual Studio 实质上只支持 C++,当然 C 也被兼容,不过用 C 会遇到各种各样的问题.
AndyAO
2021-01-20 20:39:04 +08:00
你的描述来看,那应该是相当简单的界面,如果比较复杂的话,那就不建议直接调用 Win32API(包括 MFC),因为对于复杂的界面,这种方式不仅实现繁琐,而且效率还比较差,这个时候应该考虑使用 QT 等等.
Jirajine
2021-01-20 20:41:09 +08:00
可以看看 winui3.0
ayase252
2021-01-20 20:43:12 +08:00
🤔为什么要用 C 写 GUI ?
AndyAO
2021-01-20 20:44:08 +08:00
非 Win32API 的 GUI 方案可以称为 DirectUI,没有使用标准的控件,绘制的内容是由程序本身完全控制,如果调用 Win32API,那么其中的内容是系统接管的,这就导致在显示复杂内容的时候效率上比较差.

当好处也显而易见,非常简单轻便,而且精确操作控件的 API 很多.
love
2021-01-20 23:06:09 +08:00
gtk,且垮平台。 如果直接用 winapi 写界面是会死人的非常繁复。
lovestudykid
2021-01-21 00:51:26 +08:00
https://easyx.cn/ 这个简易的库应该可以满足你的要求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/746800

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX