- 主题:这个编程大作业难吗
做个简单的玩具应该可以,但肯定达不到商业使用的级别。
比如语音这个,直接使用 QtMutlimedia 就可以录音,然后直接把 pcm 块发送出去,不管压缩。屏幕共享也是类似,在 Qt 里面,截桌面内容只是一句话,同样的不管压缩,直接把 bitmap 通过网络发送出去显示。
这么玩只能实现在局域网里面一对二三的直播,但确实做到了。
【 在 xxpxxxxp (xxpxxxxp) 的大作中提到: 】
: 不说语音、屏幕共享、网络不让调库了
: 就是让调库,阿里P8以上拉出来有一个是一个,16周内做出来的能有1%吗?
--
FROM 183.253.23.*
C++ 要做界面,至少得用个工具库吧?
用 win32api 抓取音频和屏幕估计也不是很难。不过我没有试过。
【 在 Madlee (无竹居士) 的大作中提到: 】
: 不让用QT吧
--
FROM 183.253.23.*
我没点进去看。难道还要求使用 win32api 写界面?
【 在 Madlee (无竹居士) 的大作中提到: 】
: 好像可以源码级使用QT。
--
FROM 183.253.23.*
这就厉害了。。
【 在 Madlee (无竹居士) 的大作中提到: 】
: 好像还要跨平台,Mac & Windows
--
FROM 183.253.23.*
不太相信大作业会给这个要求。单是掌握两个平台的 GUI API 就得花很长时间了。
如果不限定这些底层 API,只要求写个网课平台大作业。我倒是觉得对于熟悉这个方向的程序员做个玩具出来不算难。对学生来说就难说了。
【 在 vig (video, image and graphics) 的大作中提到: 】
: 也就是跟OS相关的要写两套?
--
修改:hgoldfish FROM 183.253.23.*
FROM 183.253.23.*
其实,懂得从 Qt 库里面扣代码也是人才了。
Qt 的源代码,不是直接包含就可以编译的。
【 在 DreamDreams (光风霁月) 的大作中提到: 】
: 脱了裤子放屁么,QT开源的,QT的库是开源的代码编译出来的,
: 好,放一个QT的目录进去不就完了。
--
FROM 183.253.23.*
Qt 要兼容各种平台,有时候要处理特定操作系统/编译器版本的 BUG,所以做了一个 mkspecs 目录,里面有个头文件定义。编译 Qt 之前需要先运行 configure 脚本探测选用一个 mkspecs. 所以要扣出 Qt 的源代码,mkspecs 目录的 qplatformdef.h 记得带上。
你说的奇怪的东西可能是 qmake,这是一个脚本构建工具。vc 的工程文件是 IDE 定义的,通过 IDE 来修改,不方便做脚本自动化——比如,根据外部环境决定哪个文件要编译哪个文件不要编译。以前用 automake,或者手写 configure + makefile,有了 qmake 就简单多了,只要学会简单的脚本语法写个 if 就能搞定,类似的 boost jam。但渐渐地 qmake 也不够用,它的继任者 cmake 逐渐流行起来,已经在 c/cpp 社区取得统治地位。
qmake 还有另外一个用途是自动执行 rcc, moc, uic 这些 Qt 的预编译工具。所谓预编译就是把源代码在交给编译器之前,往里面添加自动生成的代码。Qt 需要分析 C++ 的类,把类有哪些方法,每个方法有什么参数这些数据也一起写到 C++ 源代码里面,方便调用——类似于 java 的自省。你说的也有可能是这个。到了 Qt5,这部分功能已经是可有可无的。
【 在 Bernstein (Berns) 的大作中提到: 】
: qt的编译貌似搞了一个什么奇怪的东西,十多年前调研的时刻遇到过
--
FROM 183.253.23.*
再补充两个:
cmake 的作者可能以前是 qmake 用户,所以 cmake 的语法跟 qmake 差不多,非常之烂。后来 KDE 的支持可能又增强了这个影响。如果没有 KDE,说不定 cmake 就不会发展起来。对比 KDE 的另外一个重大贡献,khtml,也就是 webkit/chrome 的前身,它支持的这个 cmake 真是太讨人嫌了。gtk/gnome 支持的 meson 个人感觉比较好看。
Qt5 以后,因为 C++ 的进步,已经可以不用 moc 预编译了。连接 signal/slot 可以这样写:
connect(button, &QPushButton::clicked, this, &MainWindow::sayHello);
或者这样写:
connect(button, &QPushButton::clicked, [this] {
sayHello();
});
【 在 hgoldfish (老鱼) 的大作中提到: 】
: Qt 要兼容各种平台,有时候要处理特定操作系统/编译器版本的 BUG,所以做了一个 mkspecs 目录,里面有个头文件定义。编译 Qt 之前需要先运行 configure 脚本探测选用一个 mkspecs. 所以要扣出 Qt 的源代码,mkspecs 目录的 qplatformdef.h 记得带上。
: 你说的奇怪的东西可能是 qmake,这是一个脚本构建工具。vc 的工程文件是 IDE 定义的,通过 IDE 来修改,不方便做脚本自动化——比如,根据外部环境决定哪个文件要编译哪个文件不要编译。以前用 automake,或者手写 configure + makefile,有了 qmake 就简单多了,只要学
: qmake 还有另外一个用途是自动执行 rcc, moc, uic 这些 Qt 的预编译工具。所谓预编译就是把源代码在交给编译器之前,往里面添加自动生成的代码。Qt 需要分析 C++ 的类,把类有哪些方法,每个方法有什么参数这些数据也一起写到 C++ 源代码里面,方便调用——类似于 java
: ...................
--
FROM 183.253.23.*
你太小看现在的学生。我外甥现在高一下学期,已经看完我送给他的《算法导论》了。后面的看不懂,但是也算是瞄过。
【 在 AutumnNight (秋夜) 的大作中提到: 】
: C++,面向对象,操作系统,数据库,音频编码,视频编码,网络协议设计...,还要垮平台
: 每一个都是大坑
: 大一的同学,恐怕连计算机导论还没整明白呢
: ...................
--
修改:hgoldfish FROM 183.253.23.*
FROM 183.253.23.*
他的同班同学写了个外挂只在自己年级卖,一个月赚两千多块钱。我瞄了几眼我这外甥的 C++ 程序,写得不错。这只是兰芳一个五线城市的高中,更不知道整个中国有多少能人。现在的学生比以前条件好,真的很厉害。
我们这一代程序员很多人在大学的时候玩游戏,毕业后被招入公司才开始学着写代码。写了五六年 java 业务,怕是水平不如这些充满爱和勇气的中学生。
【 在 AutumnNight (秋夜) 的大作中提到: 】
: 看完能说明什么?编程这个东西,不是看书就能看会的
: 编程就跟学游泳,学开车,学乐器类似,光看是不够的
: 做硬件的也是这样
: ...................
--
FROM 183.253.23.*