- 博客(45)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 PE结构(DOS,NT,SectionHeader 不含 DataDirectory)一
PE结构相关内容的解释。 以及写一个 写入弹窗代码的例子
2022-07-08 16:13:25
560
原创 CMake 生成makefile 步骤
1、首先创建一个目录下的makefile//main.cpp#include<iostream>using namespace std;int main(){ cout<<"Hello word!"<<endl; return 0;}在main文件所在的目录创建CMakeLists.txt//CMakeLists.txt...
2019-05-24 20:17:41
18153
1
原创 tcp 粘包 丢包 解决方案
1、分析tcp粘包和丢包的原因 发送数据的时候有 发送缓冲区senBuff, 接收数据的时候有 接收缓冲区recvBuff, 假如接收数据方一直不recv, 则recvBuff就会堆满, 这个时候tcp就会停止发送数据了。 同样因为接收缓冲区的数据满了, 所以发送缓冲区也不会再就收发送方发来的消息。2、解决方案// 接收数据 处理年包 拆分包int...
2019-04-11 11:59:18
1565
原创 vs2017 linux调试遇到的一些问题
问题一:Unable to start debugging. Unexpected GDB output from command 具体如图编译的时候可以编译成功, 但是当调试的时候会报这个错。初步确定是因为没有找到对应的工作目录默认的工作目录但是我这里设置了常规里的输出目录工作目录不一致,然后就报了那个错误。解决方法:更改 调试->工作目录与常规...
2019-04-08 22:47:17
2996
1
原创 vs2017 跨平台 调试linux程序
一、安装环境 1、打开Visual Studio Community 2017 不是社区版的打开自己对应的vs2017安装程序,勾取如下图所示内容 2、 安装好后打开vs2017 新建项目 3、如图所示点击 设置连接的linux的ip账号和密码 ,设置完后如图所示这几步设置完之后就可以了创建一个项目工程了。默认是在用户所在的根目录创建的二、头...
2019-04-02 10:11:28
1628
原创 设计模式之命令模式(一)
命令模式就 (c++)参考 《大话设计模式》 和《设计模式:可复用面向对象软件的基础》将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。我的理解是一位领导者(包含了所有命令)命令某个员工干事情1事情2(方法)举个例子一个人的工作和休息 类视图如下代码如下:person.h#pragma once#i...
2019-03-13 15:51:37
314
翻译 boost asio timer 定时器
Timer.1 - 同步使用定时器前提条件安装好boost1.68 其他版本的函数可能有变动main.cpp#include <iostream>#include <boost/asio.hpp>int main(){ // 每个进程都至少有一个io_context 的对象, 此类提供对I/O功能的访问 boost::asio::io_cont...
2018-10-26 15:03:58
2096
原创 游戏角色登录的序列图和状态机
1、 游戏角色登录序列图 2、 角色登录状态图vpp文件 在这个目录下可下载 https://github.com/machuanfei/visualParadigm.git
2018-10-16 15:43:55
2033
原创 ODB 入门介绍(三)
聚合嵌套类的数据 先上关系代码 // file : self/person.hxx// copyright : not copyrighted - public domain#ifndef PERSON_HXX#define PERSON_HXX#include <string>#include <vector>#include <cstd...
2018-09-06 20:42:04
1007
原创 ODB 入门介绍(二)
mysql中是有默认值的, odb中也有 // file : self/person.hxx// copyright : not copyrighted - public domain#ifndef PERSON_HXX#define PERSON_HXX#include <string>#include <cstddef> #include ...
2018-09-06 20:08:57
6894
原创 ODB 入门介绍(一)
编写person.hxx文件 // file : self/person.hxx// copyright : not copyrighted - public domain#ifndef PERSON_HXX#define PERSON_HXX#include <string>#include <cstddef> #include <o...
2018-09-05 19:32:34
10413
3
原创 ODB 安装及运行官方实例
1、ODB资源下载 下载地址 http://www.codesynthesis.com/products/odb/download.xhtml 三个资源 ODB Compliler odb-2.4.0-i686-windows odb的执行文件 Common Runtime Library ...
2018-09-04 19:56:29
5862
原创 gTest简单应用
Gtest源码下载路径(需要梯子):http://code.google.com/p/googletest/下载后进行解压,压缩后的目录如下图windows下用户用vs打开 最后2010以上版本 工程目录地址看下图打开后直接编译注意 如果你的工程目录是debug gtest便宜的时候也要debug并且 64位和32位要一致。一般gtest debug生成的最后都带个d(...
2018-07-30 23:55:44
387
原创 代码规范
1、数据库存储过程 1.1 例子 PrGs_GameDB_xxx Pr: Procedure(存储过程) Gs: GameServer(游戏服的数据库) GameDB: 是哪里调用的这个存储过程,比如你是从web那边调的就改成WebDB, 从中心服调用的就CenterDB xxx: 就是具体这个存储过程的意思 1.2 表命名(暂时没有规范待更新...
2018-07-23 11:19:38
162
原创 主程习惯总结
1、每天中午 和晚上编译一次完整版本 否则一会找你编译一会找你编译你根本没时间搞别的了2、编译后记得备注一个完整版好让策划自己找这种版本, 要不出问题也总是来找你,也浪费时间3、策划文档要让策划时刻更新, 不要他们想到一个问题直接让你小弟改就改, 之后会被甩锅的。 最好的方案就是他们提单子之后让他们更新策划文档, 这样测试到时候测也可以根据文档测试,不用再问东问西了4、每周一做一次总...
2018-07-18 12:29:48
279
原创 c++ 消息分发 消息管理
消息分发机制 当接收到前端发来的消息并解析后 根据包头的消息码来决定分发到哪个模块,以及调用哪个函数步骤1、需要注册消息码 为了之后找到这个消息码需要干什么事步骤2、接收到消息并解析后调用根据解析的包头里的消息码到消息管理器里找对应的消息码分发到对应的部件或者函数步骤3、在对应的部件上面回调写的函数不多说了直接上代码// MH_Base.h#ifndef __MH_Base_h__#defin...
2018-07-05 10:13:43
4974
2
转载 4 套接字模式、选择模型
Winsock提供了一些I/O模型帮助应用程序以异步方式在一个或者多个套接字上管理I/O。大体上,这样的I/O模型共有6中:阻塞模型,选择模型,WSAAsyncSelect模型,WSAEventSelect模型,重叠模型和完成端口模型。 本章先介绍套接字模型、选择模型、WSAAsyncSelect模型 4.1 套接字模式 套接字模式简单的决定了操作套接字时,Winsock函数是
2016-01-26 00:18:22
601
转载 3、Winsock编程详解
使用TCP创建网络应用程序稍微复杂一些,因为TCP是面向连接的协议,需要通信双方首先建立一个连接。 本节先以建立简单的TCP客户端和服务器端应用程序为例,详细说明WInsock的编程流程, 然后再介绍较为简单的UDP编程。 3.1 Winsock编程流程 使用Winsock编程的一般步骤是比较固定的, 可以结合后面的例子程序来理解他们。 1、套接字的创建和关闭 使
2016-01-23 01:11:46
1446
转载 2、Winsock的寻址方式和字节顺序
本节讲述在Winsock中主机地址信息的表示方法, 以及相关的操作函数 2.1 Winsock寻址 因为Winsock要兼容多个协议,所以必须使用通用的寻址方式。 TCP/IP 使用IP地址和端口号来指定一个地址, 但是其他协议也许采用不同的形式。 如果Winsock强迫使用制定的寻址方式,添加其他协议就不大可能了。 Winsock的第一个版本使用sockaddr结构来解决此问题。
2016-01-22 01:55:40
607
转载 1、Winsock库
Winsock有两个版本,Winsock1 和 Winsock2 现在开发网络应用程序都使用Winsock2,需要在程序中包含头文件winsock2.h, 它包含了绝大部分socket函数和相关结构类型的声明和定义。同时要添加的还有到Ws2_32.lib库的链接。包含必要的头文件,设置好链接环境之后,便可进行下面的编码工作了。 1.1 Winsock库的装入和释放 每个Winsock
2016-01-21 23:31:31
3086
转载 IOCP 基本模型 事例
送上事例前先回忆一下IOCP的步骤1、创建一个完完成端口2、创建一个线程A3、A线程循环调用GetQueuedCompletionStatus()函数来得到IO操作结果,这个函数是阻塞函数4、主线程循环调用accept等待客户端连接上来。5、主线程里accept返回新连接建立以后,把这个新的套接字句柄用CreateIoCompletionPort关联到完成端口,然后发出一个异步
2016-01-09 21:29:11
1818
1
转载 IOCP WSASend()
WSASend 函数: 在一个已连接的套接口上发送数据简述语法 int WSASend( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesSent, DWORD dwFlags, LPWSAOVERLAPPED lpOverlapped, LPWSAO
2016-01-09 00:50:31
1833
转载 IOCP 实现的基本步骤
回顾一下IOCP 是性能最好的一种I/O模型,它是应用程序用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建线程的开销比较大,所以造成了效率的底下。调用ioc
2016-01-08 00:28:55
1777
转载 IOCP 概述
IOCPIOCP 常称 I/O完成端口。 IOCP模型属于一种通讯模型,适用于(能控制并发执行的)高负载服务器的一个技术。 通俗一点说,就是用于高侠侣处理很多很多的客户端进行数据交换的一个模型。 或者可以说,就是能异步I/O操作的模型基本概念 IOCP全程I/O Completion Port, 中文译为I/O完成端口。 IOCP是一个异步I/O的A
2016-01-07 23:08:08
560
转载 日志 c/c++ 正则表达式 regex
正则表达式(regular expression) 是对于字符串匹配的一种方法。 正则表达式可以用来检查一个字符串是否含有某种子字符串,将匹配的子字符串替换,或者从某个串中取出符合某种条件的子字符串。 在c中一般用regex这个类来使用的。 很多接口都封装的这个类中1、正则表达式的基本语法1.1 特殊含义的字符 ^ 指出一个字符串的开始 例如 "^h
2016-01-07 01:03:47
524
转载 c#入门经典5~8章 与c++对比
第5章 变量的更多内容 5.1 类型转换 c#相对c++强制类型转换他多了一个函数checked检测是否溢出, 如果溢出的话会报错。 c++需要我们自己来做判断using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _5Uint{ cla
2015-10-16 13:33:00
318
转载 c#入门经典1~4章 与c++的对比
第一章 c#的简介 第一章的内容就不多说了都是c#的历史什么的。 我不擅长记忆这些东西。 所以这些略过第二章 编写c#的程序 第二章主要介绍了一些使用工具,使用vs2012开发环境,建立一个控制台应用程序,第三章 变量和表达式 基本语法查不了多少: 3.1变量类型 整数的基本类型: 浮点类型: 文本
2015-10-13 20:37:11
288
转载 boost学习之二(时间 timer库)
首先timer是一个很小的库,提供简单的度量时间和进度显示功能。一般性能测试等需要计时的任务可以用这个简单的库timer有两个组件组成 早起的timer(v1)和新的cpu_timer(V2)。 cpu_timer(v2) 之后详细说明,本篇文章暂时只讲解timer(v1)timer(v1) 库包含三个组件。 计时器timer、progress_timer和进度指示器progress
2015-08-10 21:40:29
657
转载 boost学习之一(安装boost库)
1、首先登陆boost官网www.boost.org下载你需要的版本。把文件解压到磁盘任意位置即可。2、编译源代码 2.1、找到你解压的boost文件的位置,找到boost的根目录,例如:E:\boost_1_57_0 2.2、在根目录下有bootstrap.bat这个脚本文件可以直接点击运行也可cmd下找到此文件所在目录执行这个脚本。执行成功后会有一个bjame.exe文件
2015-08-10 20:50:24
335
转载 cocos2d-x 创建项目过程 -----1
首先你要确保你有一个cocos官方的3.0以上的版本另外安装了python2.7 不能是2.7以上的版本然后在目录cocos2d-x-3.6\tools\cocos2d-console\bin下有一个cocos文件 用cmd进到这个地址的位置执行cocos new project1 -p com.work6 -l cpp -d 其中project1 是项目名称
2015-07-13 23:16:38
296
转载 mysql 存 binary/blob
一般我们对数据库的操作到时直接存与读基本类型的数据, 如int bigint char 等等, 但是当数据量很大时,或者你的字段很多时就会操作很不方便这里就用到了数据库存储二进制的方法这里也不多什么理论。 就直接附上代码给大家参考DbToBinary.h 文件#pragma once#include #include //---------------------
2015-06-29 22:54:09
664
原创 关于独立游戏的一些素材网站
独立游戏素材网站1除了上面的免费素材网站外。可以用谷歌搜索“Game Image”或者“Game Sound”/“Game Music”。前面加上“Free”的字样可以搜到很多外国大大共享的免费资源,真是妙极了。
2015-06-20 12:42:15
2329
1
原创 使用mysql++ 的一些api
mysql++实际上就是把mysql本身的一些api进行一次封装,是以面向对象的思想来处理问题了。 具体内容可以到网上查下我这里就不多说了。 这篇文章主要是举一个完整的例子方便大家学习。1、首先做好准备我们先来建立一个简单的表
2015-06-18 22:04:47
965
转载 windows下socket套接字
一、首先说下什么是套接字 套接字的概念与文件句柄类似, 一个套接字就是一个通讯标识,由一个短整数标识,实际上就是一个句柄,代表网络协议中的一组数据,该数据包含了通信双方的ip地址和当前的连接状态等信息。我们知道,如果一个文件被打开,可以通过文件句柄对文件进行读写操作,套接字也一样。二、然后我们来看看什么是网络计算机网络是相互连接的独立自主的计算机的集合。它主要由 IP地址, 协议
2015-06-04 23:05:20
591
原创 protobuf 的优缺点 以及配置和用法
protof的描述首先 protobuf是一个开源项目,是goole内部久经考验的一个东西。主要用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过他更小,更快,也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。甚至可以在无需重新部署程序的情况下更新数据结构。protobuf的优点:1、性能好/效率高时间开销: XML格式化(序列化)的开
2015-05-13 11:34:30
12552
转载 关于mysql的 C API 的常用用法
C API 代码是随MySQL发布的, 它被包含在mysqlclient库且允许C程序存取一个数据库。首先看一下数据结构MYSQL 这个结构表示对一个数据库连接的句柄,它被用于几乎所有的MySQL函数。MYSQL_RES 这个结构代表返回行的一个查询的结果。 从查询返回的信息称为结果集合MYSQL_ROW 这是一个行数据的类型安全(type-safe)的表示。当前他实现为一个计数
2015-05-07 13:11:47
1314
转载 关于ODBC的一些内容
ODBC 是“开放数据库互联”的简称 英文全称Open Database Connectivity。 odbc是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。
2015-04-25 15:51:21
649
原创 c++内存分配详解
一、c/c++内存分配的5个区分别是:栈区、堆区、全局区(静态区)、文字常量区、程序代码区1、栈区:编辑器自动分配 和 释放,存放函数的参数,局部变量等。 2、堆区:一般是程序员分配和释放,如果在程序一直运行的状态下,程序员不去释放内存,会导致内存泄漏之后会打到一定程度的时候会导致系统崩溃。 或者如果程序员没有释放内存但进程结束时,内存的回收是由os来回收的 3、全局区(静态区
2015-04-12 10:06:16
734
vs2019 的番茄插件 亲测可用
2020-10-21
内存写入文件多了个字节
2022-07-06
mono 加载多个dll怎么操作
2022-05-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人