自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

锋行天下的博客

记录每一个成长的经历

  • 博客(27)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

转载 Modbus常用功能码协议详解

转载的文章,防止以后找不到,自己记录一下:01H-读线圈状态1)描述:读从机线圈寄存器,位操作,可读单个或者多个;2)发送指令:假设从机地址位0x01,寄存器开始地址0x0023,寄存器结束抵制0x0038,总共读取21个线圈。协议图如下:3)响应:返回数据的每一位对应线圈状态,1-ON,0-OFF,如下图;上表中data1表示0x0023-0x002a的线圈状态,data1的最低位代表最低地址的线圈状态,可以理解为小端模式;data2表示地址0x002b-0x0033的线圈状态,如下

2022-03-23 16:40:25 1444

转载 c++ 之 柔性数组

参考文章:https://blog.csdn.net/u013919153/article/details/109000118https://mp.weixin.qq.com/s/_-6pjksrZM9bsqZTTM795Q先看下面的代码,对于包含动态字符串成员的两个结构体Test0和Test1占用空间分别是多少呢?#include<stdio.h>struct Test0{int a;int b;char *c;};struct Test1{int a;int b;

2021-06-04 14:46:21 372

原创 c++ 函数中的部分代码执行一次

c++ 函数中的部分代码执行一次:static int Fun(){static int a = 0;static bool once = true;if (once){cout << “once!” << endl;}once = false;return ++a;}int _tmain(int argc, _TCHAR* argv[]){for (int i = 0; i < 10; ++i)cout << Fun() <&

2021-05-31 17:27:34 207

原创 printf格式化字符串

printf "%g,%g,%g",5/2,10/5,100*10000;$names = "jim";$days = 20;printf "\nhello,%s,time is over after %d days!\n",$names,$days;printf "%5d\n",21;printf "%-5d\n",21;printf "%10s\n","jimGr";printf "%-10s\n","jinGr";printf "%10.2f\n",123.365478;pri

2021-04-06 14:48:02 441

原创 perl读取文本文件内容

#下面的代码,按行读取文件中内容:$count = 0;while (defined(my $line=<>)){ chomp($line); $count++; print "$line,,,$count\n";}将上面的代码保存未Test5.pl。读取的文件名是test5.txt。保存后打开cmd,输入下面内容:即可按行读取文件内容。...

2021-04-06 14:01:59 2178

原创 wpf 中 datatemplate的简单使用

wpf 中 datatemplate的简单使用,下面例子包含了三个常用的使用。第一个例子:前台:<Window x:Class="TestDataTemplate.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="...

2020-12-22 13:29:43 1201

原创 python 中函数参数的一点理解

1.函数参数带默认值def helloworld(hello="hello", name="world"): print("{}, {} !".format(hello, name))调用:import Funciton as Fun#以下三种调用都可以。Fun.helloworld()Fun.helloworld("hi")Fun.helloworld("hi","zhangjing")输出:hello, world !hi, world !hi, zhan

2020-08-11 13:29:10 185

原创 python中类的多态(自己的一点理解)

类的多态.py中的代码:# 类的多态# 发送多态必须满足一下两个条件# 1.多态一定是发生在子类和父类之间# 2.重写:多态子类重写了父类的方法。class Animal(object): def __init__(self, name): self.name = name def getname(self): return self.name def talk(self): print("%s's talking

2020-08-05 13:57:36 290

原创 python 类的继承(自己的一点理解)

类的继承.py中代码如下:# 类的继承# 1.继承时构造函数__init__()# 1.1继承中无__init__(),调用基类的__init__()# 1.2继承中有__init__(),调用派生类的__init__(),不调用基类的__init__()# 1.3继承中有__init__(),但需要调用基类的__init__(),必须显示调用基类的__init__()# 1.3.1 经典类的写法: 父类名称.__init__(self,参数1,参数2,...)

2020-08-05 13:10:48 767

原创 初识 python 函数

Common.py中定义如下函数:def testfun(): print("这是一个测试程序")另一个.py中调用:import Common as comm# 使用另一个.py文件的中函数时,需要像上面一样导入comm.testfun()

2020-07-30 15:37:24 120

原创 初识 python 类

person.py中定义类如下:class Rectangle: def __init__(self, length, width): self.__length = length # 两个下划线(__)表示私有变量 self.__width = width # 读取属性 @property def length(self): return self.__length # 读取属性 @property

2020-07-30 15:34:50 152

原创 线程例子

一个有用的线程例子:Spinlock.h文件:#pragma once#include <stdio.h>#include <windows.h>#include <process.h>#define AUTO_LOCK(x) \ CAutoLock lock(x);class CSpinLock{public: CSpinLock() { CSpinLock(0...

2020-05-21 16:19:34 201

原创 C++ int类型和byte类型的数据之间的互相转换

int a = 56987; byte* pa = new byte[10]; memset(pa,0,10); memcpy(pa,&a,4); //int ---> byte[] byte* pIn = new byte[4]; memset(pIn,0,4); memcpy(pIn,pa,4); //取4个字节 int temp = *(int*)pIn; //byte[] ---> int ...

2020-05-14 13:32:09 1388

原创 event事件

事件event:一个线程需要通知其他线程某项任务已经完成了。也就是说A线程执行完某个操作后,需要通知B线程,A线程的任务已经完成,B线程可以开始执行了。等B线程执行完某个操作后,再通知C线程,B线程的任务已经完成,C线程可以开始执行了,等C线程执行完成后,如果没有其它线程,则退出。CreateEvent函数   HANDLE CreateEvent(   LPSECURITY_AT...

2019-08-15 22:33:53 193

原创 CriticalSection 临界区

临界区(Critical Section):某些共享资源具有互斥性,也就是它要求被互斥地使用 ,在任何时刻都只能有一个线程使用它。在程序中最常见的是全局变量的互斥使用和缓冲区的互斥使用。临界区的出现形式是一小段代码,这一小段代码中包含互斥资源。临界区也有一定的局限性:它只能用于同步单个进程中的线程。在这里大家得注意一点就是:“在任何的关于同步机制中,不论是在哪一个操作系统下,我们都...

2019-08-14 21:55:59 249

原创 Mutex互斥对象

Mutex互斥对象:用于确保一个线程独占对一个资源的访问。假如有两个线程要访问一个全局变量,那么要用mutex互斥量,进程同步。代码片段如下:声明:int g_TicketCount = 50; //两个线程g_thread1 和 g_thread2对全局变量g_TicketCount访问。HANDLE g_Mutex;HANDLE g_thread1;HANDLE ...

2019-08-13 22:40:41 312

原创 C++一个简单的线程例子

下面是一个简单的线程例子,以后可以按照这个写。.h文件:#pragma once#include <windows.h>class CMyThread{public: CMyThread() { m_stopFlag = false; m_Handle = nullptr; } ~CMyThread()...

2019-08-09 15:15:11 637

原创 C++动态库的创建和使用

记录一下动态库的创建和使用:1,创建前面文章已经介绍过了,注意如下一点,DLLCreate.dll和 DLLCreate.lib 就是生产的文件。2,使用使用和静态库的使用是一样的。不一样的地方是:需要将DLLCreate.lib , DLLCreate .dll , DLLCreate .h 这三个文件拷贝到现在的工程目录下,同时需要将DLL...

2019-08-08 21:12:03 716

原创 C++静态库的创建和使用

记录一下静态库的创建和使用:Lib的创建a,创建Win32项目b,选择静态库,点击完成c,右键LibCreate,选择添加C++类d,输入添加的类名:例如CLibTest,点击完成按钮即可。e,在.h中输入类的声明,在.cpp实现。f,编译重新生成项目,在Debug目录下,就生成了两个文件。g,至此,lib文件的创建,到此完成。2.Lib的使用...

2019-08-06 22:09:01 3312

原创 windbg生成和分析dump

记录一下使用windbg.exe生成和分析dump文件的过程:1,在 客户机 的注册表中配置调试工具为windbg.exe,具体方法见上面文章。2,配置完成后,在 客户机 运行程序,使程序崩溃。如下:下面的例子是除0崩溃的例子。输入0后,程序崩溃,跳出windbg工具的界面:3,在工具栏点击如图所示的按钮, 或者在命令窗口输入g,然后回车,使程序运行,如下图:...

2019-08-05 22:18:51 5907 1

原创 C++,PDB和dump文件进行调试的方法

关于PDB和dump文件进行调试的方法,现在总结一下:1,PDB和dump的概念前面已经说过了,参照前面的文档。2,另外记录一下另一个问题:在用vss调试时,出现了错误,比如除数是0,或者空指针等问题,vs有时候会中断,有时候不会中断。按照下图设置就会在出现错误时,程序中断:工具 --->选项:3,PDB文件的获得参照上面介绍。4,dump文件如何获得?两种方法,下面分别...

2019-08-02 16:08:27 3037

原创 C++回调函数(三)

上一篇已经讲了如何生成dll和lib,已经生产了MyDLLTest.dll和MyDLLTest.lib两个文件,这一篇记录一下这两个文件如何使用。新建一个win32控制台程序,新建步骤略过,完成后把MyDLLTest.dll和MyDLLTest.lib两个文件拷贝到debug文件夹目录下:C++连接dll库,有两种方式,显式连接和隐式连接,分别介绍:1,显式连接显式连接不需...

2019-07-12 14:39:03 95

原创 C++回调函数(二)

上一篇文章中提到了“库开发者”和“用户”两个概念,这篇以“库开发者”的角色说明dll和lib的新建和使用。1,打开vs2013,新建,win32项目,2,确定,下一步,3,完成后,解决方案如下:4,在MyDLLTest.h和MyDLLTest.cpp中,删除多余部分。5,删除后,添加自己的代码:.h文件如下:// 下列 ifdef 块是创建使从 DLL ...

2019-07-11 17:12:32 139

转载 C++回调函数(一)

转载...............回调函数回调函数是一个时时听到的概念,比如在windows API编程时遇到的WinProc函数,就是我们编写而由操作系统调用的函数。现在,我们需要慢慢又详细的记录一下这个问题。库与使用者的问题在开始之前,首先我们想像这样一个情景,一个大型软件公司开发一套软件库提供给用户使用。在这句话中,出现两个对立面,一个是软件公司,一个是用户。显然,软件公司实...

2019-07-11 09:54:52 314

原创 c++宏的多行定义

下面用宏的多行定义,写一个把某个类型转换为string#include <string>#include <iostream>#include <sstream>#define CHARTOSTRING(val,str)\{\ stringstream sst;\ sst << val;\ str = sst.s...

2019-07-02 15:39:36 2295

转载 C++产生随机数

C++产生随机数C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand()。不过,由于rand()的内部实现是用线性同余法做的,所以生成的并不是真正的随机数,而是在一定范围内可看为随机的伪随机数。rand()rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。...

2019-07-02 10:05:57 396

转载 WPF 数据绑定

http://blog.csdn.net/iamsupercola/article/details/7041996该博客里面有关数据绑定的讲解,可以很好的理解数据绑定。

2016-09-08 13:00:56 144

MFC帮助文件

mfc 的msdn,初学者的必备手册,还是比较全的,自己一直在使用。

2018-04-08

MathNet的应用

工作需要,最近了解了MathNet的使用,功能很强大,计算行列式很方便。例子是一个利用行列式,三点画圆。需下载MathNet相关dll

2017-08-25

GridView 实现行号倒叙排列,

GridView 实现行号倒叙排列,分页和不分页两种情况。

2015-04-23

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

TA关注的人

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