自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 粗糙的完成端口映射简单测试小程序

粗糙的完成端口映射简单测试小程序#include <conio.h>#include <list>#include <windows.h>#include <process.h>#include <iostream>enum{ IocpListEmpty, IocpListPush, IocpListPop};typedef struct IocpParam{ int nOperator;//操作 std::strin

2021-10-30 22:34:02 202

原创 互斥、消息机制和IOCP

线程数据同步的三种方式:一、互斥1 当一个数据被两个线程及以上线程访问时,由于是互斥机制,所以当一个线程访问时,其他线程将会被挂起2 这就是导致效率下降的一种原因3 还有就是当数据是使用互斥,而访问这个数据的程序没有使用这种机制时,也会出现问题二、消息机制1 数据的分发是复制在wparam和lparam中的,但是其所传的量是有限制的,也就是说不支持大量的数据2 如果是量大、实时的,那么此机制就会出现问题3 此外,还依赖消息队列,这样效率也会被影响4 还会受制于机器性能的影响,最低大约是在2

2021-10-29 22:09:00 135

原创 管理员权限检测和获取

一、错误函数void ShowError(){ LPWSTR lpMessageBuf = NULL; FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPWSTR)&lpMessageBuf, 0, NULL); OutputDebugStri

2021-10-28 21:36:09 217

原创 服务端的开机自启动

第一种方式(修改注册表): CString strPath =CString(_T("C:\\Windows\\SysWOW64\\RemoteCtrl.exe")); if (!PathFileExists(strPath)) { CString strSubKey = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); CString strInfo = _T("该程序只允许合法的用途!\r\n"); strInfo

2021-10-27 21:39:50 150

原创 远程控制之消息机制调试

远程控制之消息机制下的网络调试:1 首先做的是打通网络,服务端和客户端之间的网络2 使用的是*_beginthreadex**()**,PostThreadMessage()和GetMessage()*3 在这里有一个问题,也就是说如果postmsg的时候getmsg没有执行起来,那么postmag返回的是错误,就是投递消息失败4 而这也和线程有关系,因为我走的是线程之间的消息,所以线程也必须先启动5 所以说就在构造的时候就启动线程,配合着事件使用,启动线程之前创建事件,启动线程之后等待回应,完成

2021-10-25 22:04:32 105

原创 远程控制项目(2)

远程控制项目(2)六、鼠标操作的处理1 鼠标的操作分为左键、右键、中键和单纯的移动2 其中又分为左键、右键和中键的单击、双击、按下、放开;3 在鼠标的操作中,使用mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo());模仿左键的按下,就相当于单击4 mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, GetMessageExtraInfo());接着又有鼠标的放开,合起来就相当于鼠标的单击5

2021-09-23 10:12:08 242

原创 远程控制项目(1)

远程控制项目(1)一、C/S架构1.项目的分析1 首先,对项目的服务端和客户端,相对来说服务端的架构是较难的部分2 其次,在今后的联调过程中是需要服务端和客户端来配合的,所以优先写服务器2.Windows下的服务端1 首先对服务器的了解2 在实际中服务器可能是多个的3 服务器可能有多个的网络接入,比如接入电信、移动4 然后再由这个服务器连接到其他的服务器,称为内网5 内网里可能有数据库服务器、逻辑服务器等6 这样的结构的好处就是当用户接入服务器是对内网的服务器ip是不知道的7 这样还

2021-09-22 10:39:44 510 2

原创 Qt天气项目部分完结

四、QJson的了解1.对QJson的类通过Qt助手了解1 QJsonDocument,读取和写入json类2 QJsonObject,Json对象3 QjsonValue,Json有键和值,而QjsonValue用来表示值4 QjsonArray,JSON数组是一个值列表。可以通过从数组中插入和删除QJsonValue来操作列表2.可以使用网站测试json格式的正确性2.查询天气预报接口http://t.weather.itboy.net/api/weather/city/直接访问

2021-09-21 10:28:40 114 1

原创 Qt天气项目(1)

Qt天气项目一、项目的创建以及基础工作的准备1.设置窗口的背景图片的添加2.标签的设置3.窗口中线条的设置4.窗口高度以及宽度的设置5.使用代码设置窗口的部分属性setWindowFlag(Qt::FramelessWindowHint);设置窗口为没有边框,没有标题栏setFixedSize(width(),height());设置窗口为固定的大小,也就是使用自己设置的大小,用户不能修改窗口大小总结:1 创建项目时选择QWidget2 Ui设置时使用部件Widget将这个

2021-09-17 23:20:01 238

原创 QT学习的第五天

QT****学习的第五天一、铆接部件和中心部件/ ******* * ** 铆接部件 ******** ** **/QDockWidget* dock=new QDockWidget(this);//addaddDockWidget(Qt::LeftDockWidgetArea,dock);QTextEdit* text=new QTextEdit(this);//set 一个中心部件setCentralWidget(text);dock->setAllowedAreas(Qt::L

2021-09-17 15:30:34 70

原创 QT学习的第四天(1)

QT****学习的第四天一、QTextEdit信号使用QTextEdit信号做一个小实验1.使用QT助手查看QTextEdit都有哪些信号2.选择其中的一个信号作为本次实验的信号,在这里选择文本内容改变时发出信号3.建立代码,使得当edit中的文本内容发生改变时,同时copy中的文本内容也发生改变4.代码运行的效果二、菜单栏的创建1.创建菜单栏的代码QMenuBar* bar=menuBar();//setMenuBar(bar);//2.对菜单栏添加菜单选项QMenu* f

2021-09-16 15:23:35 77

原创 QT学习的第三天(2)

QT****学习的第三天(2)一、Lambda的返回值1.使用Lambda函数实现一个数的翻倍int ret=101;qDebug()<<“ret=”<<ret;ret=&retmutable->int{ret*=2;return ret;}();qDebug()<<“ret=”<<ret;在上面的Lambda函数中,&ret的意思是在Lambda内应用ret,这个函数不传参,返回值的类型为int。2.使用Lambda函数

2021-09-15 23:22:14 98

原创 QT学习的第三天(1)

QT学习的第三天(1)一、自定义信号参数带函数重载的问题1.问题描述:第一段代码:signals:void love();//不用实现 必须是void类型void love(QString str);第二段代码:public slots:void _love();void _love(QString str);第三段代码:void Girl::_love(){qDebug()<<“好呀好呀”;}void Girl::_love(QString str){qD

2021-09-15 16:58:58 70

原创 QT学习第二天(2)

QT学习第二天(2)一、QT助手的了解与使用二、QT对象树1.对象树的理解类有一个私有变量,这个变量专门用来储存设定了这个类为父对象的众多类,把这个储存的叫做父对象,一个类创建并指定父对象时,就会把自己加到父对象的列表里面。2.使用对象树的好处好处就是当父对象被析构的时候,子对象也会被析构,这样就避免了我们写一大堆的delete。3.对象树的坏处就如图所示,我指定Widget w 为button的父对象,程序执行就会崩溃,在此过程中button是在栈上的,但是button的一些数据是用n

2021-09-14 18:39:13 101

原创 QT学习的第二天(1)

QT****学习第二天(1)一、 我的第一个QT程序1.QT函数部分功能的了解我的第一个QT程序学习了windowTitle的更改、按钮的放置以及按钮名称的修改,以及按钮响应函数的创建与调用QMessageBox::information(this,“恭喜”,“您已成功逆袭,请点击确定迎娶白富美!”);函数,总的来说,QT程序与MFC有着一定的相似,比如按钮的添加以及标题的修改与MFC极其类似。2.第一个QT函数的运行结果二、 调试器问题1.如下图,在选择调试的时候会无法使用调试器2.解决

2021-09-14 13:30:05 62

原创 QT学习第一天

QT****学习历程一、基础1.QT的意义QT简介:QT是一个跨平台的C++图形用户界面应用程序框架。它为程序开发者提供图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正地组件编程。QT的发展过程1991年 最早由奇趣科技公司开发。1996年 开始进入商业领域。MatthiasEttrich(马蒂亚斯·埃特里希)创建KDE项目。**2008年 **Qt被诺基亚收购。成为诺基亚旗下的编程语言。**2012年 **Qt又被Digia公司收购**2014年 **发布跨平台的集

2021-09-13 23:42:15 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除