自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (9)
  • 问答 (6)
  • 收藏
  • 关注

原创 Linux安装软件通用办法总结及注意事项(全局运行、守护进程、自启动,开放服务端口)

安装软件推荐用系统自带的工具(如Centos的yum、Ubuntu的apt)1.1 查询软件源提供的关于所需软件的信息1.2 安装软件1.3 卸载软件1.4 更新软件源信息。

2023-10-19 11:23:07 236

原创 linux目录权限、文件权限及修改权限操作

R读 W写 X执行X :只有具有此权限才能进入到目录下进行操作R:读取目录中有哪些文件的权限W:删除目下文件、新建文件、修改文件名的权限。

2023-10-19 10:13:50 206

原创 linux让某程序变为服务程序以及防火墙开放某个端口

搭建自己的服务时常常连不上网络的原因及如何让程序长期在后台运行

2023-06-25 08:07:15 508

原创 使用window自带的ssh连接linux服务器

使用window和linux自带的工具就可以远程登录和传输文件了

2023-06-24 15:13:50 1781

原创 c++标准能做到以下这几点就好了

1、模块(包)管理机制去除头文件------再也不用担心找不到头文件了2、异常规范编译时检查—不用等运行时才发现漏掉异常处理程序,这样就不用抛弃throw()改用noexcept声明可能的异常了3、除了现有智能指针类以外,加一个守卫指针,对象删除时守卫指针自动置空以上纯属个人建议...

2021-07-24 12:57:21 107

原创 qt使用msvc作为编译器字符变问题解决办法

直接说解决方案。1、工具/选项/文本编辑器/Behavior下:UTF-8 BOM 列表框 选择如果编码是utf-8则添加2、字符串前面加u8const char *str=u8"你好啊"

2020-10-30 07:39:14 342

原创 汇编寻址总结

segment:offset实地址模式段基地址=segment*16 (或segment<<4)段基地址+offset=物理地址保护模式 ---- 未开启分页机制segment此时为选择子,在GDT或LDT里选择一项,此项称为段描述符,里面记录着段基地址段基地址+offset=线性地址=物理地址意义:1、增大地址访问的界限2、保护作用:段描述符除了含有段基地址信息外还有这个段的属性一个多段模型充分发挥了段机制的对代码,数据结构和程序提供硬件保护的能力。每个程序都有自己

2020-07-06 17:58:54 218

原创 用U盘作为git的远程仓库

将U盘作为远程仓库初始建立远程仓库1、先在u盘里新建一个文件夹,如git_remote;2、cd到此文件夹下, git init --bare可把此目录初始化为远程仓库将本地仓库与远程仓库关联git remote add upan G:/git_remoteupan是你为此本地仓库关联的远程仓库取得名字 G:/git_remote是远程仓库路径与远程仓库通信git push upan只需加个远程仓库名字:upan另一台电脑想pull代码怎么办1、找到合适的地方新建一个项目文件夹

2020-07-05 07:01:22 1382 1

原创 何时用返回值何时用异常来用于错误处理

考虑性能 返回值 优于 异常如果程序中高频出现错误处理,则用返回值情景:假如不考虑用select和epoll等,用轮询来读取多个连接的数据,此时为了不互相阻塞干扰,用非阻塞的读取函数。此时read将大量出现返回-1的情况,如果不用返回值表示暂时无数据读取,而用异常。那么性能消耗将是可怕的。以下为简单模拟代码:#include<iostream>#include<Windows.h>#include<ctime>#include<list>#d

2020-06-22 07:14:24 585

原创 udp上的可靠传输项目记录

疫情隔离在家的两个多月,我实现了自己的可靠传输框架。时间分布如下一、前期准备 10天:8天收集各种可靠传输资料。构思 2天天时间二、设计出类图和写出大概主框架:耗时3天三、编写代码用时耗时18天,边写代码边初步测试四、优化代码和检查bug用时36天。性能如下:本机传输 100M/S局域网传输 80M/s 左右两台不同的电脑,不同的i外网ip,NAT穿透后传输速度 1M/S,基本跑满了我网络上传速度内存占用 2m左右cpu占用:0%到28%之间波动,受发送数据快慢影响家用电

2020-06-21 18:37:40 181

原创 搜遍网上GetLastError()返回值错误码查询工具难用!微软自带的不支持反查询[比如:搜索“文件 篡改”来查询有关错误码],我用半天时间写了此工具供大家白嫖

开发中常常用错误码表述函数执行错误时原因,我们常常需要知道错误码是什么意思。我们设计函数时候也需要知道函数该用何种错误码来描述错误状态。这个工具可以方便我们查询。支持查询1、0x001正向查询。还支持反向查询,比如:当我们函数检测到文件已经被篡改过了,此时可以用“文件的哈希值不在指定的目录文件中。此文件可能已损坏或被篡改“,此时只需要这样查询 文件[空格]篡改。

2020-06-20 12:47:44 774

原创 http请求参数为中文时注意事项

http请求参数默认为utf8编码如果是中文,将参数进一步处理//伪码表示处理前后的数据utf8[3]={0XE4,0XB8,0XAD };//处理前数据dealutf8[6]={'%','E','4','%','B','8','%','A','D'};//处理后数据...

2020-03-17 10:56:57 919

原创 文档ansi、utf-8、unicode的标志头

在做bt解析种子类时:用记事本打开一个种子文件无法辨认中文,因为中文部分是utf-8编码,而那个种子文件缺少utf-8 标志头,以ansi解析了utf-8所以出错了ansi 无标志头字节utf-8 前面有三个标志字节efbbbfunicode 标志头 fffeunicode big endian 标志头feff...

2020-03-09 18:14:21 687

转载 HTTP协议-11.HTTP传输大文件的方法

早期互联网上传输的基本上都是只有几K大小的文本和小图片,现在的情况则大有不同。网页里包含的信息实在是太多了,随随便便一个主页HTML就有可能上百K,高质量的图片都以M论,更不要说那些电影、电视剧了,几G、几十G都有可能。相比之下,100M的光纤固网或者4G移动网络在这些大文件的压力下都变成了“小水管”,无论是上传还是下载,都会把网络传输链路挤的“满满当当”。所以,如何在有限的带宽下高效快捷地传...

2019-11-30 09:48:27 5400 1

原创 exit和ExitThread为啥不安全,这个列子很直观

#include<cstdio>#include<cstring>#include<Windows.h>class Test {public: Test(){ data = new int; } ~Test() {//析构函数主要释放堆空间上的内存 if (data) { printf("析构函数\n"); delete da...

2019-08-13 11:03:02 1797

转载 GetModuleHandle(NULL)获取当前DLL模块基址?

做一项目想在DLL内部代码实现获取本DLL的模块基址,而且不知道本DLL名称最简单的方法是想到GetModuleHandle(NULL),是否可以呢?//自己尝试了一下://DLL代码(testDll):BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, ...

2018-09-24 09:20:38 3919

原创 dos和ddos攻击原理及C语言示列代码

(以下来自几篇网文的总结) DDOS是DOS攻击中的一种方法。  DoS:是Denial of Service的简称,即拒绝服务,不是DOS操作系统,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。  DDOS:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借...

2018-09-03 05:56:35 10482 5

原创 迷宫问题

#include&lt;cstdio&gt;#include&lt;ctime&gt;#include&lt;cstdlib&gt;#include&lt;stack&gt;char map[10][15] = { 0 };void printfmap(char *pmap,int imax,int jmax) { printf("\n----------------------...

2018-06-06 08:36:52 426

原创 spy++只能读取主窗口句柄而无法读取到子控件句柄的原因

看望DIRECTUI简介就明白了: DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Windows XP,Vista,Windows 7,如浏览器左侧的TaskPanel,控制面板导航界面,Media Player...

2018-05-16 07:11:50 7264 3

翻译 mysql需要用外键吗

数据库的诸多设计,帐号,权限,约束,触发器,都是为 C/S 结构设计的,是以 C 端不可信做为假设前提的。B/S 模式安全边界前移到 web 服务层,应用与数据库之间是可信的,应用自行完成这些功能更加灵活。所以能不用就不用。

2017-11-09 07:22:22 1910

原创 MySQL中char、varchar和text的区别

他们的存储方式和数据的检索方式都不一样。 数据的检索效率是:char>varchar>text 空间占用方面,要具体情况具体分析了。 名称 占用长度 其他 CHAR(M) M个字节,0 <=M<= 255 定长 VARCHAR(M) L+1个字节,其中L<=M且0 <=M<= 65535 变长,当值保存和检索时尾部的空格仍保留 TEXT L+2个字节,其

2017-11-08 20:15:00 652

转载 谈谈MySQL乱码和set names

SET NAMES utf8 相当于 SET character_set_client = utf8 用来设置客户端送给MySQL服务器的数据的 字符集 SET character_set_results = utf8 服务器返回查询结果时使用的字符集 SET character_set_connection = utf8 MySQL 服务器 把客户端传来的数据,从character_se

2017-10-30 15:53:32 954

原创 linux使用php动态安装模块mysqli.so(ext/mysqlnd/mysqlnd.h: 没有那个文件或目录)

由于我先安装的php,再安装的mysql!正常过程: 1、安装mysql 2、安装php configure时带–with-mysql参数现在我不想重装,因此使用phpize动态安装mysqli,php版本为php-7.1.101先查看php下phpize路径#切换到php安装目录cd /usr/local/phpfind ./ -name phpize显示如下./bin/phpize得

2017-10-21 09:36:53 7672 1

原创 apache+php安装简单记录

由于nginx不是以模块化运行php的fast-cgi,很难用php的pathinfo功能,所以改为apache apache安装#配置参数./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache --enable-so#编译sudo make#安装sudo make install安装mysql,gd

2017-10-20 16:12:36 553

原创 linux下php+nginx+mysql网站开发环境搭建

php安装 下载解压文件后#指定安装路径 开启安装fpm 指定mysql路径 ./configure --prefix=/usr/local/php --enable-fpm --with-mysql=/usr/local/mysql #编译 sudo make#讲编译好的文件安装到指定的地方 sudo make installnginx安装 下载解压文件后./con

2017-10-19 16:29:08 774

转载 Java中的对象类型像C++引用还是指针

Java中的对象类型像引用还是指针,谁是谁非?作者:海枫地址:http://blog.csdn.net/linyt作为一名程序员,我们应该对新知识和新技术刨根问底,而不应泛泛而谈。我未曾接触到Java的时候,我想听得最多的东西还是关于Java中不存在指针的问题。此时,我会不断地想:如果Java不存在指针的话,那么是如何实现复杂的数据结构?这样的语言与VB有什么差别?如果一个静态过程式或面向对象语言,

2017-10-16 16:18:22 781

原创 C++(qt)游戏实战项目:坦克大战(六源代码)

坦克大战五叙述了如何发射子弹。到此坦克大战的核心功能基本完成到此献上源代码链接qt坦克大战源代码 此源代码敌人和玩家都用的Tank类,如果你们愿意也可以从Tank类继承,即按照C++(qt)游戏实战项目:坦克大战(前言)的类目结构来安排此源代码已实现的功能 地图编辑m,地图加载l,地图保存s 玩家坦克移动asdw 发射子弹j发挥你的才智实现以下功能吧: 关卡设计 坦克打怪升级 坦克魔法攻

2017-07-28 20:19:47 13810 8

原创 C++(qt)游戏实战项目:坦克大战(五)

发射子弹 单独的子弹类根据坦克属性生成相应的子弹对象。//file bullet.h#ifndef BULLET_H#define BULLET_H#include"wanwu.h"#include"tank.h"class Bullet : public Wanwu{public: Bullet(const Tank &tank); // 绘图 void Disp

2017-06-19 21:26:06 7809 3

原创 C++二进制读写类对象注意指针问题

#include<iostream>#include<cstdlib>#include<cstring>#include<ctime>#include <fstream>using namespace std;class A{public: A() {} virtual void say();};class B :public A{public: B(

2017-06-19 11:10:31 1247

原创 C++(qt)游戏实战项目:坦克大战(四)

屏幕上光有地图也不行,还需要我们的坦克加入其中 新建tank.h和tank.cpp tank.h里加入#ifndef TANK_H#define TANK_H#include"wanwu.h"#include"main.h"#include"gamemap.h"class Tank : public Wanwu{protected: int steps[8]={4,8,8,16,

2017-06-03 07:13:55 12712

原创 极大极小算法伪代码-博弈算法(象棋游戏记录)

#define MAXNUM 65535int getmaxscore(int dep){ maxscore=-MAXNUM; if(dep==0) return Eval(); getallposibile(allsteps); foreach(step as allsteps) { move(step);

2017-06-02 23:54:29 3373

原创 C++(qt)游戏实战项目:坦克大战(三)

前面实现了地图的显示但是地图很单一,这回实现地图的编辑、保存和载入。 我们给地图类Gamemap添加下面几个成员函数 gamemap.h int switchstyle(int i,int j);//改变cells[i][j]地图块的样式 void setstyle(int i,int j,int style);//设置cells[i][j]地图块的样式 void dele

2017-05-29 20:02:35 5024 8

原创 随记,虚函数与引用

#include <QCoreApplication>#include<stdio.h>class A{protected: int x;public: A(int xx):x(xx) {} virtual void say(){printf("a say %d\n",x);}};class B:public A{protected: int y;pu

2017-05-25 08:23:08 448

原创 C++类的前向声明

今天遇到个情况大致可以如下//file a.h#include"xxxx.h"//xxxx.h里最终间接的把b.h也包含了class A{public:A(){}};//file b.h#include "a.h"class B{public:B(){}private:A a;}结果导致编译错误 我们分析a.h对应的a.cpp单元最终可以得到如下代码//file: a.cp

2017-05-24 15:53:13 571

原创 C++(qt)游戏实战项目:坦克大战(二)

地图的表示前面讲到了地图块类,我们想一想地图是地图块or地图包含地图块,是前者用继承,明显这里是包含的关系。地图对象里管理着所有的地图块对象,我们用二维数组cells[INUM][JNUM]存储各个地图块对象的指针(想一想为什么不直接存储地图块对象?),前面说过整个游戏地图被分成很多的地图块,cells[i][j]表示i行j列的地图块。//file gamemap.h #ifndef GAMEMAP

2017-05-24 06:45:08 6492 3

原创 C++(qt)游戏实战项目:坦克大战(一)

地图左到右从上到下依次编号0,1,2,3…28//file:main.h#ifndef MAIN#define MAIN#define JNUM 17//地图块列数#define INUM 13//地图块行数#define PICWIDTH 64//地图块图片宽度#define PICHEIGHT 64//地图块图片高度#define CELLWIDTH 64//地图块宽度#defi

2017-05-23 15:58:33 12492 9

原创 C++(qt)游戏实战项目:坦克大战(前言)

坦克游戏,儿时的经典,同样是练手的经典小项目之一! 准备好开发环境 必须 备注1 备注2 window或linux系统 推荐window QT5.5以上 百度一下就知道 整体框架伪代码描述游戏开始游戏初始化while(true){从消息队列收集信号signal swtich(signal){ case: 绘图信号 绘

2017-05-23 08:11:07 38480 35

原创 QT 建立透明背景图像QPixmap

QPixmap pixmap(160,200);pixmap.fill(Qt::transparent);//用透明色填充QPainter paint(&pixmap);//paint.draw....;pixmap.save("bullet.png");列将下面背景透明图片1转变成图片2图1![图片1](http://img.blog.csdn.net/201705201434085

2017-05-20 14:14:55 14021

转载 散列表冲突解决方法11.1.3

常用的解决思路: 1、换个位置:开放定址法 数组结构 #define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */ typedef int ElementType; /* 关键词类型用整型 */ typedef int Index; /* 散列地址类型 */ typedef Index Position;

2017-05-17 07:54:50 421

原创 散列函数的构造方法11.1.2

一个好的散列函数一般要考虑以下两个因素:1、计算简便,以便提高转换速度 2、关键词对应的地址空间分布均匀,以尽量减少冲突散列函数的常用方法关键词为数字1、直接定址法取关键词的某个线性线性函数作为散列地址,即h(key)=axkey+b,比如统计1949年成立以来的司令身份,h(key)=key-1949.2、除留余数法:h(key)=key mod p 一般p=tablesize=素数 以使对

2017-05-17 06:58:41 507

window错误码查询工具.rar

开发中常常用错误码表述函数执行错误时原因,我们常常需要知道错误码是什么意思。我们设计函数时候也需要知道函数该用何种错误码来描述执行错误的状态。这个工具可以方便我们查询。支持查询1、0x001正向查询。还支持反向查询,比如:当我们函数检测到文件已经被篡改过了,此时可以用“文件的哈希值不在指定的目录文件中。此文件可能已损坏或被篡改“,此时只需要这样查询 文件[空格]篡改。window错误码查询工具.exesha1:f8445c81c4098b05e098a0db3918f63b511c00c8

2020-06-20

更改win10默认编码为utf8,无%SystemRoot%_system32_cmd.exe注册表项也可以以.reg

  在程序开发中我们一般统一的编码是 UTF-8,这一点很重要,但是总还是会遇到许多乱码问题,乱码的原因是多方面的,这里暂不过多总结。这里只说明在window下使用控制台执行 一些自己编写的程序,或者是进行交互式编程的时候会经常遇到乱码问题,这是因为Window cmd的默认编码是GBK。与程序采用的 UTF-8 不一致造成的中文及特殊字符乱码。下载此文件点击就可以方便永久更改cmd默认编码为utf8

2019-06-29

C++(qt)游戏实战项目:坦克大战(源代码)

此坦克游戏采用c++开发,有详细的源码解析 已实现功能 地图编辑m,地图加载l,地图保存s 玩家坦克移动asdw 发射子弹j 发挥你的才智实现以下功能吧: 关卡设计 坦克打怪升级 坦克魔法攻击 等等

2017-07-19

严蔚敏海龟作图初步程序适合参考

命令格式 命令范例 范例含义 前进 前进 100 海龟前进100个点 后退 后退 100 海龟后退100个点 左转 左转 90 左转90度 右转 右转 90 右转90度 ......这是一个基本框架,还有其他功能没实现,那是留个读者实现的。。。有了其骨,其髓由你填充!非MFC程序,注释详细,易懂!

2015-12-28

用C++发邮件

用C++发邮件,用起来超简单,稍微改下代码可以实现群发功能

2015-10-21

经典小游戏合辑

经典的C++游戏源代码,来是我收集于共享网络

2015-08-13

超级玛丽制作揭秘

这个资源是我在共享网站上下载的,适合有一定C++基础的人!

2015-08-13

windows程序设计第五版

非常适合有一定C或C++基础后,来作为WINDOW程序设计的入门

2015-08-13

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

TA关注的人

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