全能终端神器 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
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)
mykernel 精简内核注释 源码链接本文只是注释了一下孟宁老师写的一个非常简单的mykernel精简内核。此内核源码仅仅100多行代码,只包括三个文件。通过三个文件mypcb.h、mymain.c和myinterrupt.c实现了一个简单的时间片轮转调度进程的精简内核。其中:mypcb.h 声明了进程控制块,即定义了一个结构体来说明进程的相关参数;mymain.c 有两个函数,函数my_start_kernel() 用来初始化进程;函数my_process()作为每个进程的入口地址,开始逐个调度执行进程;myinte
QT 消息处理机制 Qt提供函数QApplication::processEvents()来处理消息。调用流程如下:1.bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) { createInternalHwnd(); do{ PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS,
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;}
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
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
汇编指令入门 世界的底层是原子和电子,电子构成电路(门电路,触发器),二进制的电路构成计算单元(加法器等),计算单元+存储设备+输入输出设备=计算机。(我们需要计算世界的真实问题,需要对问题进行抽象和数字化,然后把数字化的待处理数据输入给输入设备(一般是键盘),输入设备将数据存入内存,计算的算法传给计算单元,计算单元计算后把结果再存入内存,最后输出给输出设备(一般是显示器))。2.计算机的本质是计算(CPU),计算的核心是CPU的ALU。算术逻辑单元(Arithmetic&logical Unit)...
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. 数据传送指
汇编-加减乘除与或非 以下代码实现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
《穿越计算机的迷雾》 世界最底层的粒子是电子,原子,他们组成了万物。同样,他们也组成了计算机。原子无法毁灭,只能流动,重组。电子的流动形成电流。用电来表示数计算机只能识别二进制,因为两个状态容易识别,有无,就像开关,开了有电流,通路就是1;关了没有电流,断路就是0.电报—继电器----给电路蓄电。5. 笛卡尔坐标系。导体在磁场中旋转一周所产生的交流电波形为正弦波。电压为0,电压增加到最大,然后减少到最小,循环往复。6.电磁波。。。无线通信布尔逻辑代数: 与或非。逻辑电路。数字电路: 加法器,减法器.
《编码的奥秘》 计算机就是计算用的机器,本质作用是计算。人类计算太慢,他是为了取代人类计算用的工具。整个世界可以说是模拟的,但是我们可以把他数字化,数字化后就可以用计算机来计算了。任何东西都可以数字化,文字,图像,视频,一棵树,一辆车等等。计算机也可以用来通讯。通讯最重要的是通讯协议。通讯的双方必须约定大家都能懂的协议,才能知道对方在表达什么意思。协议和编码。文字,图像,视频都必须编码为计算机能识别的数字信号才能被计算机认可。编码方式很多:摩尔斯电码,ascii码等等。世界的底层是电子和原子,他们构成.
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
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();
记录一次\ufeff bom的bug 突然发现程序运行居然界面有些不对,多了一些空白,还多了一个滚动条。what‘’s the fuck!我基本没改代码啊。git回退到以前的版本,没问题。再返回新版本,有问题。纳尼???git diff 加 Beyond Compare 看了下,发现一个怀疑的地方:貌似一样,然而编码看下:哦,原来是\ufeff,是bom的问题。删除\ufeff,问题解决。估计是不小心在编辑器里原则了bom。...
RTTI symbol not found for class ‘QObject‘ + double free or corruption 记录一个崩溃crash的问题。在方法中使用一个栈类对象时,程序出现崩溃。原因是:QT中 如果一个子级对象是new生成的(堆对象),当父级对象销毁时,会自动调用operator delete删除他的所有子级对象。这样有三种情况:如果一个子级对象是new生成的,他无需自己销毁;如果一个子级对象不是new生成的(栈对象),他在父级对象销毁前自己主动销毁自己,没问题。如果一个子级对象不是new生成的(栈对象),他不在父级对象销毁前自己主动销毁自己,父级对象调用operator delete他时就会出
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。