- 博客(60)
- 资源 (8)
- 收藏
- 关注
原创 虚拟机MacOS安装Openssl ld: symbol(s) not found for architecture x86_64
最近开始搞MacOS下的开发,需要用到openssl,但是系统自带的openssl头文件还有库根本找不到,也不知道能不能用,于是就自己装一个1.去网络上下载一个openssl的源码包2.解压到自己有权限的目录下3.在这一步,很多人用linux下的配置方法,我也是其中一个,踩了很大的坑,他们都是:sudo ./config --prefix=/usr/local/openssl然后就去make,这样是不行的,会报错:ld: symbol(s) not found for architect
2021-09-01 19:01:25
1072
原创 基于MNist数据集进行DeepLearning学习
我的原微博地址:http://halfofpoetry.github.io/2020/05/07/%E5%9F%BA%E4%BA%8EMNist%E6%95%B0%E6%8D%AE%E9%9B%86%E8%BF%9B%E8%A1%8CDeepLearning%E5%AD%A6%E4%B9%A0/什么是MNistMNist手写数据集,大多数示例使用手写数字的MNIST数据集[1]。该数据集包...
2020-05-07 16:41:59
882
原创 DLL注入之注册表注入
我的原博客位置:http://halfofpoetry.github.io/2020/05/07/DLL%E6%B3%A8%E5%85%A5%E4%B9%8B%E6%B3%A8%E5%86%8C%E8%A1%A8%E6%B3%A8%E5%85%A5/注册表注入DLL顾名思义,就是通过注册表的方式,把需要的执行的代码片段,注入到目标程序中,使目标程序执行指定的代码片段,从而达到预期效果。该...
2020-05-07 12:17:25
1782
原创 Windows编程之DLL注入
我的原博文链接:http://yoursite.com/2020/05/07/Windows%E7%BC%96%E7%A8%8B%E4%B9%8BDLL%E6%B3%A8%E5%85%A5/Windows编程中不得不懂的一项实用技巧就是DLL动态库注入技术关于这一系列的注入知识,后续会针对每一项技巧进行专门的博文编写这篇博文,简单讲述现在常用的四种技巧一、注册表注入顾名思义,...
2020-05-07 10:05:47
395
原创 python3写一个猜数字小游戏
这是一个学习项目游戏原理介绍:这个猜数字的小游戏,相信很多人以前玩过,就是一个人从1-100中随机写一个数字,然后另外一群人去猜,猜一个数字的时候,就会告诉你所猜的数字大了还是小了,渐渐缩小范围,直到最后猜对的人,为最后的胜利者。现在把生成数字和裁判的角色,交给代码,这样即使只有自己一个人的时候,也可以玩这样的游戏经过上述游戏分析,我们就可以开始一套简单的思路1.随机数的生成,...
2020-03-23 15:09:43
1532
原创 利用python3写一个简单的百度翻译小字典
声明:此例子为学习例子,通过百度翻译的XHR来实现的最近在重新学习python3,尝试着利用它来抓取网页上的数据。在用百度翻译的时候,看到突发奇想想做一个百度小字典的玩意儿于是开始了学习之路首先利用浏览器的网页工具查看其工作原理是利用xhr请求来获取数据于是我们可以在network工具下选择xhr协议在preview模式中找到具体的流数据(json)...
2020-03-06 17:29:55
605
1
原创 【AI记录】机器学习与深度学习
今天来讲讲机器学习(Machine Learning,ML)与深度学习(Deep Learning,DL)首先,要论这两个东西,得先了解人工智能(AI),AI与机器学习以及深度学习之间的关系,用集合关系来描述,就是:深度学习包含于机器学习,机器学习包含于AI;机器学习作为AI的子领域,也是其核心,可以这么理解:设计和分析一些算法,可以让计算机进行自动学习。深度学习设计灵感,...
2019-06-24 10:36:00
281
原创 error C2226: 语法错误 : 意外的“HFONT”类型
今天在做项目,利用duilib和MFC的界面混用的时候,出现如下情况:..\atlmfc\include\afxbutton.h(183): error C2226: 语法错误 : 意外的“HFONT”类型..\atlmfc\include\afxbutton.h(183): error C2238: 意外的标记位于“;”之前..\atlmfc\include\afxfontcombo
2017-11-24 10:01:40
3077
1
原创 问题:由于这台计算机上储存的终端服务器客户端访问许可证已被修改,远程会话被中断
今天研发需求,要链接一个远程桌面,然后就出现了这个问题:由于这台计算机上储存的终端服务器客户端访问许可证已被修改,远程会话被中断。这个问题其实是注册表的问题。只要把对应的注册表信息删除掉即可。开始->运行 regedit 注册表中,导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing 选中MSL
2016-11-01 10:34:39
7651
转载 Linux UDP严重丢包问题的解决
测试系统在Linux上的性能发现丢包率极为严重,发210000条数据,丢包达110000之巨,丢包率超过50%。同等情形下Windows上测试,仅丢几条数据。形势严峻,必须解决。考虑可能是因为协议栈Buffer太低所致,于是先看看默认情况:sysctl -a |grep net.core发现net.core.rmem_max = 131071net.core.rme
2016-09-20 11:19:35
5939
原创 Linux下send错误代码32
问题描述:今天写程序,socket后send出现这个问题,send的返回值为-1,而errno为32,这个错误代码为broken pipe,即管道破裂。 问题形成原因:后来通过排查研究,发现出现该种问题出现的可能性为以下两种:1.socket失败,与服务器端的链接没有成功,从而管道破裂。2.服务端将客户端的socket断开,一样造成这样的问题。 此时这样的程序收
2016-09-05 16:56:03
13990
转载 段错误调试神器 - Core Dump详解
搬运自:http://www.cnblogs.com/lidabo/p/5014710.html 一、前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件某一行, 而是没有任何信息, 使得我们的调试变得困难起来. gdb: 有一种办法是, 我们用gdb的step, 一步一步寻找. 这放
2016-08-10 15:15:08
3016
转载 信号量与PV操作
原文:http://blog.chinaunix.net/uid-15014334-id-2853109.html 在计算机操作系统中,PV操作是进程管理中的难点。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S³0,则该进
2016-08-01 17:45:40
385
原创 MFC窗口显示的Z序问题
之前遇到了一个窗口显示顺序的问题,发表了这么一个帖子:http://bbs.csdn.net/topics/391839703问题大概描述是这样的:多个窗口重叠在一起,自己的一个程序的主窗口在桌面窗口的第二层位置时,点击第一层窗口最小化,该程序即会显示在原状态下第三层窗口的后一层位置,即永远都变成界面上第二层窗口首先先感谢网友们的热心回答,但是这个问题,我做了很多方案去解决,Set
2015-10-14 17:03:28
3206
1
原创 MFC 获取当前路径
第一种方法:DWORD GetCurrentDirectory( DWORD nBufferLength, // size, in characters, of directory buffer LPTSTR lpBuffer // pointer to buffer for current directory);BOOL SetCurrentDirector
2015-10-14 16:23:03
1083
原创 关于360断网急救箱引发的探索
第一检测项:网络硬件配置检查网线,网卡以及驱动是否正常工作等网线问题:建议更换网线重新设置网卡问题:修复硬件驱动问题:更新或者回滚驱动第二检测项:网络连接配置检测网络连接配置是否正确,IP地址是否配置正确网络链接配置不正常:重新配置路由器,或者重启路由器IP地址不正常:重新配置IP,或者改为自动获取IP第三检测项:DHCP服务检查DHCP服务是否正常工作
2015-09-24 16:25:18
3539
原创 sqlite3使用心得
字段列表与值列表需要一一对应,如果在语句中没有指定字段列表,则需要按字段顺序给出所有的值列表每个数据值的数据类型、精度和小数位数必须与相应的列匹配不能为标识列指定值,因为它的数字是自动增长的;如果在设计表的时候就指定了某列不允许为空,则必须插入数据;具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值
2015-08-20 09:12:18
460
原创 sqlite3运用
当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识:#sqlite3 test.db 查看数据库文件信息命令(注意命令前带字符'.'):sqlite>.database查看所有表的创建语句:sqlite>.schema 查看指定表的创建语句:sqlite>.schem
2015-08-20 09:10:03
475
原创 友元关系
在封装中C++类数据成员大多情况是private属性;但是如果接口采用多参数实现肯定影响程序效率;然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全又理想的“后门”——友元关系;C++中提供三种友元关系的实现方式,友元函数、友元成员函数、友元类。友元函数:既将一个普通的函数在一个类中说明为一个friend属性;其定义(大多数会访问该类的成员)应在类后;友元成
2015-08-20 09:07:17
852
原创 多态性
多态性可以简单的概括为“1个接口,多种方法”,在程序运行的过程中才决定调用的机制程序实现上是这样,通过父类指针调用子类的函数,可以让父类指针有多种形态。多态性:在基类的一个函数前加一个virtual可以实现c++的多态性,意思是子类有的,调用子类的,子类没有的调用基类的class Animal(){virtual void breath() //加上virtual表
2015-08-20 09:05:04
107
转载 C++类继承关系问题
在C++中继承主要有三种关系:public、protected和private。这三种继承关系中public继承是最为常用的一种继承关系,代表了接口继承含义,而他们分别具体代表了什么含义呢?1. public 从语义角度上来说,public继承是一种接口继承,根据面向对象中的关系而言就是,子类可以代替父类完成父类接口所声明的行为,也就是必须符合“Liskov替换原则(LSP)”
2015-08-20 09:01:47
404
原创 单例模式的优点-缺点
单例模式的优点-缺点单例模式的优点: 1,实例控制:单例模式防止其它对象对自己的实例化,确保所有的对象都访问一个实例。 2,伸缩性:因为由类自己来控制实例化进程,类就在改变实例化进程上有相应的伸缩性。单例模式的缺点:1,系统开销。虽然这个系统开销看起来很小,但是每次引用这个类实例的时候都要进行实例是否存在的检查。这个问题可以通过静态实例来
2015-08-20 08:59:33
891
原创 对象的封装
封装是指按照信息屏蔽的原则,把对象的属性和操作结合在一起,构成一个独立的对象。通过限制对属性和操作的访问权限,可以将属性“隐藏”在对象内部,对外提供一定的接口,在对象之外只能通过接口对对象进行操作。封装性增加了对象的独立性,从而保证了数据的可靠性。外部对象不能直接操作对象的属性,只能使用对象提供的服务。类中的数据成员的类型可以是任意的,可以定义各种类型的变量、指针、
2015-08-20 08:58:03
1803
原创 在C语言中引入了面向对象的思想
在C语言中引入了面向对象的思想是一种混合型的语言,同时支持结构化程序设计和面向对象程序设计方法兼容C语言,可不加修改地使用C语言代码允许数据抽象,支持封装、继承和多态等特征逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假)强制类型转换格式如下:type(表达式),例如:int(num);(type)表达式,例如:(int)num;
2015-08-20 08:56:50
755
转载 曾经的笔记迁移__C语言必背18个经典程序
C语言必背18个经典程序 1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ }
2015-08-18 15:02:18
594
原创 曾经的笔记迁移__自己封装的通用链表_简单实用
list.h::#ifndef _LIST_H_#define _LIST_H_int ID;#include typedef struct list_t{void *pdata;struct list_t *pnext;}LIST_T;LIST_T *creat();void list_add(LIST_T *head,void *pdat
2015-08-18 14:58:50
433
原创 曾经的笔记迁移__文件
ASCII文件(文本文件):每一个字节放一个ASCII代码二进制文件:把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放.“r” (只读)为输入,打开一个文本文件“w” (只写)为输出,打开一个文本文件“a” (追加)向文本,文件尾增加数据“rb” (只读)为输入,打开一个二进制文件
2015-08-18 14:54:11
347
原创 曾经的笔记迁移__链表的封装要点
1.使用链表时候,先确认要使用的是单向链表,还是双向链表,或者是循环链表。一定要初始化。2.添加节点时候,要注意是否队列已满。3.删除节点的时候,要注意队列是否为空。4.要有可以判断链表是否为空的函数。5.要有可以判断链表节点个数的函数。
2015-08-18 14:51:45
348
转载 曾经的笔记迁移__通用链表网络版
C通用链表库(1.0版) 转载自网络。 本链表库可以使用CodeBlocks(MingW)和VC系列编译器进行编译,为单向带头尾的链表,封装后使用起来很简单,实现了链表的增,删,改,排序,清空,遍历等常用操作,可进行元素的前插和尾插,还有两个功能,插入排序和清除重复元素,准备在下一版实现。头文件:list.h#ifndef LIST_H_H#define
2015-08-18 14:47:43
406
原创 曾经的笔记迁移__变量
变量从变量值存在的时间(即生存期)角度分:静态存储方式和动态存储方式静态:在编译时确定了固定的内存地址与内存大小,如:函数里的局部变量、全局变量等动态:由程序控制,运行时主动性的向系统申请所需大小的内存段,并且每次分配到的内存地址不固定在动态存储区存放一下数据:1、函数形式参数2、自动变量(未加static声明)3、函数调用时的现场保护和返回地址malloc() 是最常
2015-08-18 14:44:23
393
原创 曾经的笔记迁移__函数指针
int (*p)(int ,int ){}定义函数指针typedef int (*fType)(int ,int );定义一个新的函数类型。fType p;void *p,任何位置指向这块空间要储存什么的类型的数据,是的这个指针可以指向任何类型的数据地址,(打印是需要强制转换)。
2015-08-18 14:43:01
333
原创 曾经的笔记迁移__指针的类型
不能将无类型指针参与算术运算,如:p++;//错误,进行算法操作的指针必须是确定知道其指向的数据类型大小 将其改成:( (int *)p) ++;则能通过无类型指针主要作用对函数返回的限定(malloc函数)对函数参数的限定 (memcpy函数)指针的值可以改变,无法通过指针修改指向的内容关键字const放在指针类型前例如:int i, j, *q;
2015-08-18 14:41:36
302
原创 曾经的笔记迁移__二维数组
对二维数组的引用有三种方式:下标法。如a[i][j]或p[i][j]。指针针法,如*(*(p+i)+j)或*(*(a+i)+j)。当二维数组名作为函数实参时,对应的形参必须是一个行指针变量。和一维数组一样,数组名传送给变量的是一个地址值,因此,对应的形参也必须是一个类型相同的指针变量,在函数中引用的将是主函数中的数组元素,系统只为形参开辟一个存放地址的存储单元,而不可能
2015-08-18 14:37:40
349
原创 曾经的笔记迁移__指针
在C语言中,指针变量是一种特殊的变量,它是存放地址的。假设我们定义了一个指针变量i_pointer用来存放整型变量的地址,它被分配地址为(3010)、(3011)的两个字节。可以通过语句:i_pointer =&i;将i的地址(2000)存放到i_pointer中。这时, i_pointer的值就是(2000) ,即变量i所占用单元的起始地址。要存取变量i的值,可以采用间接方式:先找到存放
2015-08-18 14:36:13
360
原创 曾经的笔记迁移__结构体和typedef
可以将一个结构体放入另一个结构体内。结构体不能嵌套它自身 struct issue {char borrower [20]; char dt_of_issue[8]; struct cat books; } issl; 访问结构体元素的格式与访问正常的结构体类似, issl.borrower
2015-08-18 14:34:55
376
原创 曾经的笔记迁移__形参,实参,递归
形参变量只有在被调用时,才分配内存单元;调用结束时,即刻释放所分配的内存单元。实参和形参占用不同的内存单元,即使同名互不影响。在被定义的函数中,必须指定形参的类型实参与形参的类型应相同或赋值兼容。良好的程序设计习惯:为了使程序具有良好的可读性并减少出错,凡不要求返回值的函数都应定义为空类型;即使函数类型为整型,也不使用系统的缺省处理。一个函数在它的函数体内调
2015-08-18 14:28:37
740
原创 曾经的笔记迁移__数组
C编译器不会检查下标的越界即使两个数组的类型和大小相同,也不能检验其是否相等不能直接将一个数组赋给另一个数组不能为数组整体赋值二维数组:最常用的多维数组 、可以看成是由两个一维数组组成的数组 类似于一个由行和列组成的表格 二维数组的声明方式: 类型说明符 数组名[常量表达式1][常量表达式1]; 例如:int temp[4]
2015-08-18 14:26:42
556
原创 曾经的笔记迁移__150717
在if后的语句不止一个,应用大括号{}将他们组织起来。这样的组会称为“复合语句”或“代码块”。如果只有一个语句,大括号{}可以省略,但不建议。在 C 语言中,else 语句通常与同一块中距离它最近且未与 else 关联的 if 语句相匹配,与书写格式无关switch、case、和default都是关键字,语句可以是简单或复合语句。switch后的表达式需要用圆括号括起来,而且s
2015-08-18 14:23:58
555
原创 曾经的笔记迁移__150716
格式代码,类型需要一致。浮点型:f(小数点后六位的精确位)——》%.2(保留两位小数)。%10.2f(10包括小数点和小数位)用%-10.2f,为左对齐。空格用0来修斯,如:%05d\r(回车)与\n(换行)不一样 回车:回到行首部,会覆盖原文。“*”占位赋值,如:("%8.*f",a) *的值就是a。printf 与scanf都为
2015-08-18 14:22:36
626
原创 曾经的学习笔记搬迁_140715
低级语言:cpu直接调用处理器,寄存器和内存地址。c为中级语言。c的移植性好。.c——》预处理——》.i——》编译——》.s——》汇编——》链接——》.exe编程中,main函数为入口,必不可少(习惯上需要定义类型)。const修饰过的数据类型,无法重新定义(变量被保护)。
2015-08-18 14:20:10
577
arm板WiFi驱动源码DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
2015-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人