自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 将unsigned char 分割为两部分

标题 将unsigned char 分割为两部分在这里插入代码片#include <stdio.h>int main(void){unsigned char bComSendBuf[7] = {0x01,0x03,0x04,0x00,0xF5,0x00,0xE9};unsigned short tmp = 0xffff;unsigned short szResult = 0x00;for(int n = 0; n < 7; n++){tmp = bComSendBuf[

2020-12-23 08:51:00 761

转载 Windows和Linux中 多線程的學習

Windows和Linux中 多線程的學習为什么要采用多线程编程,其实并不是所有的程序都必须采用多线程,有些时候采用多线程,性能还没有单线程好。所以我们要搞清楚,什么时候采用多线程。1,采用多线程的好处如下:(1)因为多线程彼此之间采用相同的地址空间,共享大部分的数据,这样和多进程相比,代价比较节俭,因为多进程的话,启动新的进程必须分配给它独立的地址空间,这样需要数据表来维护代码段,数据段和堆栈段等等。(2)多线程和多进程相比,一个明显的优点就是线程之间的通信了,对不同进程来说,它们具有独立的数据空

2020-11-18 15:45:20 223

原创 DLL动态链接库生成及其動態调用(二)

DLL动态链接库生成及其動態调用(二)一、說明對上一篇DLL的補充,上一篇是靜態鏈接,補充動態鏈接方式。相比靜態鏈接,會節省內存,但是可能使用過程有點複雜。有朋友交了一種定義函數指針的方法,奈何還沒有消化!—q _ p—二、注意點#include<windows.h>,因為要用帶加載庫的一些函數;將之前生成的.h/.dll/.lib文件需要複製到當前項目文件夾下;需要包含.h文件(兩種路徑方式均可);一般順序 LoadLibrary—GetProcAddress—FreeLi

2020-11-18 14:55:22 238

原创 DLL动态链接库生成及其调用

动态链接库及其调用1.生成动态链接库的方法步骤1.1方法一生成.h文件lib文件和dll文件,表示创建成功!1.2方法二待續。。。1.3方法三待續。。。2.使用动态链接库的方法步骤2.1方法一将DllNoteTest里面的.h文件复制到5文件夹中,将4里面Debug或者Release文件夹下面的lib和dll文件复制黏贴到5文件夹的Debug或者Release文件夹下面;开始写测试程序#include “…/DllNote.h”#pragma

2020-11-17 10:57:03 379

转载 如何閱讀源碼(轉)

添加链接描述一直不知道該如何閱讀源碼,而然之間發現一篇文章,收藏!由於是轉載的,若有侵犯原作者的權利,希望告知。前言Java 学习和进阶离不开阅读源码,但是很多人只知道阅读源码却不知道如何阅读源码更有效。很多人面对源码无从下手,也有很多人阅读源码刚开始就陷入细节,看着看着就晕了,很难坚持下去。也有很多人看了很多源码,最终都 “忘了”,没留下什么印象。我自己也遇到过类似的问题,通过探索和交流总结了一些经验,在此分享给大家。读源码究竟读什么?很多人只是知道阅读源码是进阶的一个重要步骤,但

2020-11-16 15:05:12 366

原创 回調函數CallBack學習過程(三)

文章目录前言一、代碼情況总结前言之前沒有完成回調函數,函數是類的成員函數的代碼實現,今天重新總結之後完成實現,以此記錄!提示:以下是本篇文章正文内容,下面案例可供参考一、代碼情況代码如下(示例):#pragma once#include <iostream>#include <windows.h>using namespace std;//掃碼收銀 掃碼槍//定義掃碼槍類class Scanner//打開,關閉,獲取狀態,掃描{public: /

2020-11-16 14:27:10 85

原创 接受命令並解析代碼學習分析

前言花了幾天時間總算是搞清楚了iExecuteCommand這種事情了一、這個函數是什么?此函數用來接收上層下發的命令,解析之後返回某一值,iExecuteCommand(接收數據,數據長度,超時時間,回復信息,日誌)。二、代碼分析1.將命令組裝代码如下(示例):BYTE bComReceivebuf[128] = { 0 }; //存放收到的數據信息DWORD BytesRead = 0; ////發送指令格式 幀頭(兩個字節) 長度(1 byte) 命令字 校驗(1 b.

2020-11-13 16:29:06 345

原创 回調函數CallBack學習過程(二)

文章目录前言一、帶參數的回調函數二、使用步骤1.寫一個回調函數2.調用回調函數類3.主函數4.整體代碼與運行情況总结前言補充上一篇回調函數,算是對有參回調函數的摸索使用,本來想按照C++形式來的,想嘗試一下將回調函數直接是一個類,然後寫另外一個類,類中調用回調函數的,這次的算是半成品吧。之後在慢慢來。只此做一個學習記錄。提示:以下是本篇文章正文内容,下面案例可供参考一、帶參數的回調函數示例:void MyCallBack_MyBubbleSort(int *arr, int len)二、使.

2020-11-12 16:40:57 106

原创 回調函數CallBack學習過程

前言本篇文章內容僅作為學習過程記錄筆記提示:以下是本篇文章正文内容,下面案例可供参考一、回調函數就目前自己的認識來說,回調函數就是函數的調用,不過被調用的函數可能不是自己寫的,或者是別人提供的函數接口,它的內部實現是不可見的。在調用的時候是被以函數指針的形式當做調用回調函數的參數來調用的。二、使用步骤1.先對回調函數做聲明typedef void(*CallBackFunc)(),此為無參無返回值回調函數。有參有返回值則修改即可。代码如下(示例):typedef void (*CallB

2020-11-11 15:10:54 131

空空如也

空空如也

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

TA关注的人

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