摘要: 一:范例运行结果: 二:具体实现步骤步骤: (1)创建2个窗口类CSelectView和CDisplayView,到时候负责往上图1和2的位置显示东西。 (2)主窗口中定义一个切分窗口类的对象,通过对象进行拆分: CSplitterWnd m_spliter; //切分窗口类对象 (3)重写主窗口O 阅读全文
posted @ 2020-10-08 22:15 zwj鹿港小镇 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 一:TabControl使用步骤: (1).项目中添加2个文件(CTabSheet.h和CTabSheet.cpp) (2).添加TabControl控件,添加变量m_tab,注意变量类型为CTabSheet。 (3).添加2个窗口,设置属性border为None,style为child,并且给2个 阅读全文
posted @ 2020-10-07 11:50 zwj鹿港小镇 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 一:范例代码: //树控件使用 //1 、设置图标 //准备HICON图标 HICON icons[4]; icons[0] = AfxGetApp()->LoadIconW(IDI_ICON1); icons[1] = AfxGetApp()->LoadIconW(IDI_ICON2); icon 阅读全文
posted @ 2020-10-07 00:10 zwj鹿港小镇 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 法一:加载bmp #define HBMP(filepath,width,hight) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,hight,LR_LOADFROMFILE|LR_CREATEDIBSE 阅读全文
posted @ 2020-10-03 00:20 zwj鹿港小镇 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 一 现象: 粘包: A机器发出2包数据,B机器把2包数据作为一次收到,此时2包数据粘在一起。 分包: A机器发送1包数据,B机器分为两次收到这包数据,此时,这1报数据分为2次被B机器收到。 二 产生原因: 当服务端和客户端用到TCP通信时,可能会有以下场景(1)网络有延迟、(2)客户端频繁发送的数据 阅读全文
posted @ 2020-09-20 13:31 zwj鹿港小镇 阅读(3600) 评论(0) 推荐(0) 编辑
摘要: 一 使用场景: 当可执行程序在现场跑崩溃时,线程不能调试,此时就得就要考虑让程序崩溃时产生dmp文件,然后拷回来调试,dmp里面记录出错时的记录。 二 如何产生dmp文件, 以下为示范代码(VS2013),代码开始时调用SetUnhandledExceptionFilter(&MyUnhandled 阅读全文
posted @ 2020-09-13 12:24 zwj鹿港小镇 阅读(1065) 评论(0) 推荐(0) 编辑
摘要: 一、程序崩溃的定位 先给出一个例子,该代码有致命bug,运行时将使程序崩溃。在VC中输入以下代码: /////////////// 示例1 //////////////////// #include <stdio.h> #include <stdlib.h> struct Object { int 阅读全文
posted @ 2020-09-12 23:48 zwj鹿港小镇 阅读(1559) 评论(0) 推荐(0) 编辑
摘要: 简介线程池(thread pool):一种线程的使用模式,线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用 阅读全文
posted @ 2020-09-10 22:34 zwj鹿港小镇 阅读(638) 评论(0) 推荐(0) 编辑
摘要: 1.操作准备:VS2019,电脑A(运行可执行程序),电脑B(跑程序调试,程序附加到A电脑上) 2.B电脑生成一份可执行程序,放到A电脑, 3.在B电脑VS安装目录里找msvsmon.exe,并以管理员权限运行,我电脑这个文件的目录G:\SoftWare\VS2019\Common7\IDE\Rem 阅读全文
posted @ 2020-09-02 23:02 zwj鹿港小镇 阅读(1246) 评论(0) 推荐(0) 编辑
摘要: 方法1: 右键程序-->属性-->兼容性-->以管理员身份运行此程序打勾 方法2: VS中设置(C/C++) 属性-->连接器-->清单文件-->UAC执行级别-->requireAdministrator (/level='requireAdministrator'),这样设置,生成程序后,运行时 阅读全文
posted @ 2020-08-31 00:30 zwj鹿港小镇 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 1.打开并初始化CAN设备代码: private void OpenCAN() { if (!IsOpen) { ControlCAN.VCI_INIT_CONFIG initCOnfig = new ControlCAN.VCI_INIT_CONFIG(); initCOnfig.Mode = 0 阅读全文
posted @ 2020-08-25 17:42 zwj鹿港小镇 阅读(961) 评论(0) 推荐(0) 编辑
摘要: 1.原子操作:原子操作可以理解为不需要用到互斥量加锁技术的多线程并发编程方式。 2.特点 (1):当程序中代码频繁用到互斥量(锁),此时原子操作的效率比互斥量(锁)高。 (2):原子操作一般针对的是一个变量,而不是一个代码段, 3.代码对比,以下代码1比代码2效率高很多 代码1 #include < 阅读全文
posted @ 2020-08-24 23:38 zwj鹿港小镇 阅读(638) 评论(0) 推荐(0) 编辑
摘要: 1.用到函数模板std::async,和类模板std::future 2工作原理:std::async用来启动一个异步任务,启动任务之后,它返回一个std::future对象,这个对象含有线程入口函数所返回的结果(线程返回的结果),线程执行完,我们可以通过调用future对象的成员函数get()来获 阅读全文
posted @ 2020-08-23 23:03 zwj鹿港小镇 阅读(817) 评论(0) 推荐(0) 编辑
摘要: 1.作用:在C++11中,我们可以使用条件变量(std::condition_variable)实现多个线程间的同步操作;当条件不满足时,相关线程被一直阻塞,并释放CPU,直到某种条件出现,这些线程才会被唤醒。条件变量需要和互斥量(锁)一起搭配使用。 用在多线程中。 线程A:等待一个条件满足 线程B 阅读全文
posted @ 2020-08-23 20:02 zwj鹿港小镇 阅读(1407) 评论(0) 推荐(0) 编辑
摘要: 1.释放单例模式中的对象问题 2.单例模式中多线程时数据共享问题 #include <iostream> #include<thread> #include<string> #include<vector> #include<algorithm> #include<windows.h> #inclu 阅读全文
posted @ 2020-08-23 00:27 zwj鹿港小镇 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 死锁问题被认为是线程/进程间切换消耗系统性能的一种极端情况。在死锁时,线程/进程间相互等待资源,而又不释放自身的资源,导致无穷无尽的等待,其结果是任务永远无法执行完成。 死锁出现的场景:当代码中有2个锁,锁A和锁B,也有2个线程,线程1和线程2,线程1执行时,先抢到锁A,然后要去抢占B,同时线程2先 阅读全文
posted @ 2020-08-22 10:06 zwj鹿港小镇 阅读(593) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include<thread> using namespace std; void ThreadFun(const int &arr1,char *pBuf) { cout << arr1 << endl; cout << pBuf << endl; ret 阅读全文
posted @ 2020-08-19 22:47 zwj鹿港小镇 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1.用一个初始函数创建一个线程 #include <iostream> #include<thread> using namespace std; void PinrtFun() { cout << " 子线程运行" << endl; } int main() { std::thread t1(Pi 阅读全文
posted @ 2020-08-19 00:04 zwj鹿港小镇 阅读(340) 评论(0) 推荐(0) 编辑
摘要: https://www.mysqlzh.com/api/1.html 阅读全文
posted @ 2020-08-17 17:08 zwj鹿港小镇 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 在三的基础上增加多线程,提高了服务器处理客户端数据的能力,客户端尽可能的实现了高并发,此版本只是客户端给服务器发消息,服务器不给客户端回消息。 Server部分:一共4个文件(server.cpp,EasyTcpServer.hpp,MessageHeader.hpp和CELLTimestamp.h 阅读全文
posted @ 2020-08-16 22:24 zwj鹿港小镇 阅读(161) 评论(0) 推荐(0) 编辑