- 博客(18)
- 资源 (16)
- 收藏
- 关注
转载 串口之COMMTIMEOUTS结构体
COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下:typedef struct _COMMTIMEOUTS {DWORD ReadIntervalTimeout;DWORD ReadTotalTimeoutMultiplier;DWORD ReadTotalTimeoutConstant;DWORD WriteTotalTimeoutMultiplier;DWORD WriteTotalTimeoutConstant;} COMMTIMEOUT...
2020-08-31 20:18:23 636
原创 windows下USB通讯
前言Windows下USB通讯,利用设备VID与PID查询设备,利用了windows的setupapi.lib与hid.lib库,开发时需要包含#include <hidsdi.h>#include <setupapi.h> 头文件USB通讯类CommUsb.h#pragma once#include <windows.h> //一定要加入该头文件#include <iostream>#include <vector&g..
2020-08-21 12:04:33 4950 3
转载 进程的创建
windows下创建进程CreateProcess函数简介windows下想要创建一个子进程不如linux的fork函数来得方便,通过CreateProcess函数创建一个新的进程,函数的定义如下BOOLCreateProcess( LPCTSTRlpApplicationName,//应用程序名称 LPTSTRlpCommandLine,//命令行字符串 LPSECURITY_ATTRIBUTESlpProcessAttributes,//进程的安全属性...
2020-08-19 15:40:41 498
转载 孤儿进程与僵尸进程
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。当一个 进程完成.
2020-08-19 14:56:38 228
转载 c++多线程中detach的使用隐患
一、其他构造线程的方法c++线程,除了可以利用普通函数创建线程外,还有其他创建线程的方法:类对象 Lambda表达式具体使用方法如下:#include <thread>using namespace std;class TA{public: void operator ()() { printf("%s", "线程开始执行 \n"); }};void main(){ TA ta; // thread 方法会调用TA的拷贝构造函数,所以使用det
2020-08-19 14:23:54 2335 3
转载 C++11多线程join()和detach()
简介每一个程序至少拥有一个线程,那就是执行main()函数的主线程,而多线程则是出现两个或两个以上的线程并行运行,即主线程和子线程在同一时间段同时运行。而在这个过程中会出现几种情况:主线程先运行结束 子线程先运行结束 主子线程同时结束在一些情况下需要在子线程结束后主线程才能结束,而一些情况则不需要等待,但需注意一点,并不是主线程结束了其他子线程就立即停止,其他子线程会进入后台运行join()join()函数是一个等待线程完成函数,主线程需要等待子线程运行结束了才可以结束#incl
2020-08-19 14:06:25 1813
转载 std::thread
本文转载自:https://github.com/forhappy/Cplusplus-Concurrency-In-Practice/blob/master/zh/chapter3-Thread/Introduction-to-Thread.md本节将详细介绍std::thread的用法。std::thread在<thread>头文件中声明,因此使用std::thread需包含<thread>头文件。<thread>头文件摘要<...
2020-08-19 11:59:36 1521
转载 动态链接库dll,导入库lib,静态链接库lib
一.windows下动态链接库dll,导入库lib,静态链接库lib1.导入库lib与静态链接库lib目前以lib后缀的库有两种,一种为静态链接库(StaticLibary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(ImportLibary,以下简称“导入库”)。静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起。比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态lib...
2020-08-15 17:06:27 944
原创 vs调试时查看指针指向的内存区域的内容
前言记得以前使用vs debug模式下调试时,可以直接看到变量或者指针指向的内存区域的内容,但是今天在查看一个指针指向的内容的时候发现了一个问题,就是当查看一个指针指向的内存区域的内容时,只显示一个字节的内容(问题),后续的看不到,我不清楚这是默认的还是可以设置的,知道的可以说一下怎么设置,对于这样显示很不方便,后来发现一种方法,如下介绍:解决方法其实有两种途径可以实现:途径一1.程序打开debug调试模式==》鼠标点击需要查看的指针变量==》右键==》快速监视(默认快捷键Shif+F9
2020-08-13 21:05:20 8738
原创 再看mfc
前言 很久不用mfc,曾几何时以为以后会很少接触它了,以前总是嫌弃它,老古董,做mfc的没前途。。。最近又用它做东西时,有了不少感悟,mfc是属于界面类库,而且是属于比较成熟,有历史的库,相较于目前做界面比较华丽多彩的duilib、BCG、QT等从外观上略显逊色,但是都了解过之后会有一些想法界面类库实现原理大致类同,类似于同一锅里蒸出的馒头,大小形态不一,本质差别不大,精通于任意一种都会对此领域有较深刻的理解,所以现在我用起mfc没有以前那种偏见了,而且现在使用对它的理解也逐渐准确了许多...
2020-08-07 16:02:15 467
原创 duilib的通用窗口类WindowImplBase
前言duilib程序中,编写自己的窗口类一般的继承关系有两种,一种是继承自CWindowWnd、INotifyUI、IMessageFilterUI,而第二种方式是继承自duilib封装好的通用窗口类WindowImplBaseWindowImplBase类从源码中可以看到WindowImplBase其实是继承自一般能用到的所有基础类:class DUILIB_API WindowImplBase : public CWindowWnd , public CNotifyPump
2020-08-06 15:37:09 1513 2
原创 duilib源码修改之WindowImplBase类OnCreate函数
问题:duilib默认新建窗体的左上角为屏幕左上角,无法自己输入参数修改,如下 代码:#include "stdafx.h"#include "MainFrame.h"int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow){ CPaintManagerUI::SetInstance(hInstance); CWndShadow:
2020-08-05 17:53:04 510
原创 duilib绝对定位与相对定位
前言duilib中窗口,布局,控件等在屏幕上的显示位置都是按照配置好的xml文件规则显示的,每个显示元素的位置大小也需要显式指定,才能呈现出更好看的界面效果,显示元素的位置有两种配置规则,即绝对位置(fuilib中float属性为true时)与相对位置(float属性为false时)。绝对位置(float=true)首先看一张惨不忍睹的自绘图:图中简单描述的是一个屏幕,屏幕里面包含了一个窗口,窗口里面包含了一个显示控件(这个控件可以理解为duilib的各种布局与控件组合),在一般的界面系
2020-08-05 11:55:14 2073
转载 duilib整体框架认识
从GoogleCode上下载的duilib工程中附带的一副总体设计图(如下所示),可以先整体了解一下,有个初步的认识,对后续进一步深入了解学习会很有帮助。通过设计图有了一个初步认识后,接下来开始进一步深入学习了解,主要从以下几个方面进行了解学习:库的组成;框架基本流程;元素创建机制;消息处理机制。1. 库的基本组成1.1 工具库由于duilib没有对外部的任何库进行依赖,所以在其内部实现了很多用于支撑项目的基础类(如下图所示)。这些类分布在Util文件夹中:UI相关:CP.
2020-08-04 14:50:28 449
原创 Duilib使用---颜色配置
前言duiilib是通过加载配置的xml文件渲染显示的界面,xml文件在duilib中扮演着类似衣服的角色,所有关于外表界面的各种属性全在xml文件配置,这篇文章介绍一下duilib的颜色配置。8位16进制值表示颜色简单示例下面是摘自一个简单示例的一段duilib的xml,表示的是一个水平布局,包含四个元素(两个label,两个button)。<HorizontalLayout height="30"> <Label name="labsoftname" text
2020-08-04 14:30:04 1788
转载 WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数详解
本文对WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数的功能及区别做出了分析比对,有助于读者更好的对消息投递函数加以理解。详情如下:一、WM_CLOSE、WM_DESTROY、WM_QUIT区别WM_CLOSE:关闭应用程序窗口WM_DESTROY:关闭应用程序WM_QUIT:关闭消息循环只有关闭了消息循环,应用程序的进程才真正退出(在任务管理器里消失)。win32应用程序的完整退出过程:点击窗口右上角的关闭按钮,发送WM_CLOSE消息。此消息处理中调用De
2020-08-03 14:07:08 1209
原创 c++ while(condition) 中condition的一些思考
前言再来看一个c++的基础性问题,while循环,一个再熟悉不过的c++语法,一直只知道使用,对于他的一些使用细节缺少认知,下面先看一下基本语法(摘自菜鸟教程)语法C++ 中while循环的语法:while(condition){ statement(s);}在这里,statement(s)可以是一个单独的语句,也可以是几个语句组成的代码块。condition可以是任意的表达式,当为任意非零值时都为真。当条件为真时执行循环。当条件为假时,程序流将继续执行紧接着循环...
2020-08-03 14:03:35 1473
CommUSB.rar
2020-08-19
缓冲区溢出实验
2015-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人