- 博客(663)
- 资源 (54)
- 收藏
- 关注

原创 软件设计概论
任何技能,都是由很多细节组成。我们学习一种技能,最好能先对整个技能及框架有一个大概的把握,然后再学习他的细节。软件设计同样如此。我们将整个软件设计的体系(框架)看成一棵树,首先我们需要对整个体系的树干从上到下有一个较为清晰地轮廓,进而熟悉树枝、树叶等细节信息。网络应用(主要)驱动操作系统CPU-内存-外存(硬盘,I/O设备(USB,鼠标,键盘等))我们知道,计算机是由硬...
2012-03-28 14:33:36
1047

原创 编程的本质
我们发明计算机的目的是为了解决问题,特别是解决大量数据的计算问题。 问题的解决之道!本质上,计算机所能做的只有一件事:数据处理或数据计算。核心就是数据。我们输入数据,计算处理他,然后输出结果。这个就是所有的过程。 输入 计算 输出 这个过程的核心就是数据的计算(处理)。这个处理过程是...
2011-11-02 20:08:33
5333
1
原创 bug vscode
记录一个bug,设置vscode保存自动格式化,他居然交换了头文件顺序(ascii排序),导致编译不过。将错误的这个头文件放前面即可。
2022-11-29 18:58:29
129
原创 全能终端神器 MobaXterm
MobaXterm真是个好东西!支持SSH,FTP,串口,VNC,X server等功能;软件小巧强大,还有绿色版。#include <iostream>#include <thread>#include <chrono>#include <atomic>class Timer { std::atomic<bool> active{false}; public: void setTimeo
2022-03-16 15:54:43
899
1
原创 Qt窗口内嵌Word,PPT,Excel
参考#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#include <QDesktopServices>#include <QUrl>#include <windows.h>#include <winuser.h>#include <QTime>MainWindow::MainWindow(QWidget *parent)
2022-02-09 13:46:28
2400
原创 mykernel 精简内核注释
源码链接本文只是注释了一下孟宁老师写的一个非常简单的mykernel精简内核。此内核源码仅仅100多行代码,只包括三个文件。通过三个文件mypcb.h、mymain.c和myinterrupt.c实现了一个简单的时间片轮转调度进程的精简内核。其中:mypcb.h 声明了进程控制块,即定义了一个结构体来说明进程的相关参数;mymain.c 有两个函数,函数my_start_kernel() 用来初始化进程;函数my_process()作为每个进程的入口地址,开始逐个调度执行进程;myinte
2022-01-21 14:27:18
789
原创 QT 消息处理机制
Qt提供函数QApplication::processEvents()来处理消息。调用流程如下:1.bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) { createInternalHwnd(); do{ PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS,
2022-01-20 13:38:56
872
原创 for循环-汇编
#include <iostream>using namespace std;//forint fun(int val){ int sum = 0; for (int i = 0; i <= val; i++) { sum += i; } return sum;}void main(){ int val; cin >> val; int sum = fun(val); cout << sum << endl;}
2021-12-09 13:32:28
863
原创 C逻辑操作(与或非异或)- 汇编
#include <iostream>using namespace std;//加减乘除 add,sub,imul,idiv void main(){ int a = 0; a = 0b10001100; a &= 0b10000111;//1000_0100 = 132 a |= 0b00001101;//1000_1101 = 141 a = ~a;//低8位: 0111_0010 a &= 0xFF; a ^= 0b11111100;//1000
2021-12-09 11:10:12
250
原创 C 加减乘除的汇编
#include <iostream>using namespace std;//加减乘除void main(){ int a = 1; ++a; a++;//前置和后置: 基本类型,无区别;复合类型前置返回引用不复制,效率高 a += 2;//add eax,2 a--;//add eax,1 --a;//add eax,1 a -= 2;//sub eax,2 a *= 2;//shl
2021-12-09 10:57:48
351
原创 汇编指令入门
世界的底层是原子和电子,电子构成电路(门电路,触发器),二进制的电路构成计算单元(加法器等),计算单元+存储设备+输入输出设备=计算机。(我们需要计算世界的真实问题,需要对问题进行抽象和数字化,然后把数字化的待处理数据输入给输入设备(一般是键盘),输入设备将数据存入内存,计算的算法传给计算单元,计算单元计算后把结果再存入内存,最后输出给输出设备(一般是显示器))。2.计算机的本质是计算(CPU),计算的核心是CPU的ALU。算术逻辑单元(Arithmetic&logical Unit)...
2021-12-09 10:06:15
490
原创 x86常用汇编指令测试
#include <stdio.h>#include <iostream>using namespace std;/*常见汇编指令1. 传送指令(4个):mov、push、pop、lea。2. 转移指令(8个):call、jmp、je、jne、jb、jnb、ja、jna。3. 运算指令(7个):add、sub、mul、div、adc、sbb、cmp。4. 处理机控制指令(1个):nop。//*/int test(){ __asm { //1. 数据传送指
2021-12-08 10:00:25
354
原创 汇编-加减乘除与或非
以下代码实现C嵌入汇编,实现加减乘除,与或非异或功能// asm_test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <stdio.h>#include <iostream>using namespace std;enum { ADD, SUB, MUL, DIV, AND, OR, NOT, XOR}ALU;int calc(int a, int b, int cmd){ if (ADD
2021-12-04 15:17:19
1108
原创 《穿越计算机的迷雾》
世界最底层的粒子是电子,原子,他们组成了万物。同样,他们也组成了计算机。原子无法毁灭,只能流动,重组。电子的流动形成电流。用电来表示数计算机只能识别二进制,因为两个状态容易识别,有无,就像开关,开了有电流,通路就是1;关了没有电流,断路就是0.电报—继电器----给电路蓄电。5. 笛卡尔坐标系。导体在磁场中旋转一周所产生的交流电波形为正弦波。电压为0,电压增加到最大,然后减少到最小,循环往复。6.电磁波。。。无线通信布尔逻辑代数: 与或非。逻辑电路。数字电路: 加法器,减法器.
2021-12-04 15:12:41
363
原创 《编码的奥秘》
计算机就是计算用的机器,本质作用是计算。人类计算太慢,他是为了取代人类计算用的工具。整个世界可以说是模拟的,但是我们可以把他数字化,数字化后就可以用计算机来计算了。任何东西都可以数字化,文字,图像,视频,一棵树,一辆车等等。计算机也可以用来通讯。通讯最重要的是通讯协议。通讯的双方必须约定大家都能懂的协议,才能知道对方在表达什么意思。协议和编码。文字,图像,视频都必须编码为计算机能识别的数字信号才能被计算机认可。编码方式很多:摩尔斯电码,ascii码等等。世界的底层是电子和原子,他们构成.
2021-12-04 10:37:09
1114
原创 QT bin二进制文件读写发送
//通讯协议: 0x55,0xAA,datalen(2),total_packet(2),cur_packet(2), data(1024), checksum(1)const static int PACKET_SIZE = 1024;//每次发送的字节数const static int PACKET_HEAD_SIZE = 10; //协议字节数void MainWindow::sendBinFile(const QString& filePath){ QFile f
2021-08-19 13:34:06
3578
3
原创 Qt 守护进程创建
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#include <QTimer>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); m_process = new QProcess();
2021-05-21 15:16:22
693
1
原创 记录一次\ufeff bom的bug
突然发现程序运行居然界面有些不对,多了一些空白,还多了一个滚动条。what‘’s the fuck!我基本没改代码啊。git回退到以前的版本,没问题。再返回新版本,有问题。纳尼???git diff 加 Beyond Compare 看了下,发现一个怀疑的地方:貌似一样,然而编码看下:哦,原来是\ufeff,是bom的问题。删除\ufeff,问题解决。估计是不小心在编辑器里原则了bom。...
2021-05-06 20:31:03
89
原创 RTTI symbol not found for class ‘QObject‘ + double free or corruption
记录一个崩溃crash的问题。在方法中使用一个栈类对象时,程序出现崩溃。原因是:QT中 如果一个子级对象是new生成的(堆对象),当父级对象销毁时,会自动调用operator delete删除他的所有子级对象。这样有三种情况:如果一个子级对象是new生成的,他无需自己销毁;如果一个子级对象不是new生成的(栈对象),他在父级对象销毁前自己主动销毁自己,没问题。如果一个子级对象不是new生成的(栈对象),他不在父级对象销毁前自己主动销毁自己,父级对象调用operator delete他时就会出
2021-03-29 17:20:34
3713
原创 QJson序列化与反序列化
此QJson并不是QT内部的QJson,而是第三方库。 主要用于json序列化和反序列化,用于网络通讯。解析:从JSON到QVariant。// create a Parser instanceQJson::Parser parser;bool ok;// json is a QString containing the data to convertQVariant result = parser.parse (json, &ok);序列化:从QVariant到JSON。
2021-03-27 14:02:37
1380
原创 Error opening device
调试qt项目的时候发现一个错误,Error opening device。看错误以为是硬件设备问题,查找这个字符没有。那肯定是加载了动态库,错误打印在动态库。deubg单步走发现是QJson解析错误,纳里???QJson解析和打开设备错误有啥关系?然后使用:ll@ubuntu:~/QJson/lib$ strings libqjson.so | grep opening发现确实有这个:Error opening device最后看github源码:https://github.com/
2021-03-22 14:32:17
2782
原创 ffmpeg 命令行录屏和停止录屏
//开始录制void frmMain::on_start_clicked(){ m_Process.setProcessChannelMode(QProcess::MergedChannels); QString cmd = "ffmpeg.exe -f dshow -i video=\"screen-capture-recorder\" e:/123.mp4"; // .\ffmpeg -f dshow -i video="screen-capture-recorder"
2021-03-18 20:53:19
2673
原创 Error: no such instruction: `swpb %cl,%al,[%ebx]
编译环境设置错误,使用了嵌入式的编译环境。qt Versions — qmake
2021-03-18 10:04:54
492
原创 cout重定向到文件
#include <iostream>#include <fstream>#include <string>using namespace std;int main(){ ofstream out("out.txt"); ofstream err("err.txt"); ofstream log("log.txt"); cout.rdbuf(out.rdbuf());//重定向cout 到 out.txt cerr.r
2021-03-17 17:37:21
397
Agilent Technologies EMC Series Spectrum Analyzers
2013-12-21
VC,.BCB串口通讯代码
2012-12-12
WinPcap中文技术文档.chm
2011-09-20
RiftDK1源码
2016-10-26
支持win7 64位的hex2bin程序(v2.2)
2016-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人