- 博客(55)
- 资源 (13)
- 收藏
- 关注
转载 为什么活着
人这一辈子总是在等,等将来、等不忙、等有钱,“昨天去世的人或许还曾规划着明天,你永远不知道下一秒将会发生什么。早上去世的人可能还计划着晚上,可是后来我们却只等来了遗憾。也许一瞬间一切都会消失,在忙碌中我们来不及享受,其实这世界就你一个人,我们漠视了爱与被爱,一个鲜为人知的秘密,
2025-02-18 15:35:28
34
转载 最舒服的日子就是啥都不干,啥也不想。
因此,世界之大,百态人生,各有不同,惟愿每一个人都能过上自己想要的生活,在前行之中懂得放松自己,感受生命中的每一个美好,聆听内心真实的声音!人生最舒服的日子,其实就是在工作不忙碌的时候,什么都不想,什么都不干,就是让自己安安静静的去看看世界,享受人生片刻的安宁,让心灵得到放松。人生在世, 短暂的几十年,来到这个世界上,每一个人都有各自的生命期限,时间一到,该走的都会走,阎王叫你三更走,绝对不会留到五更。世人到处奔波,为了生计,为了口中食,四处忙碌,生命始终还是短暂,每一个人都是孤独的。
2024-08-13 16:22:58
587
原创 WINDBG 查崩溃
注意看“Following XXX”,字面意思是接下来的段可以错了,程序在这里崩溃了的意思,因为是从下往上走的,所以“Following XXX”上方的内容就是崩溃后的东西,而“Following XXX”下方的内容就是导致崩溃的“原因”,越接近“Following XXX”的越代表有可能是导致崩溃的直接模块,但是这不一定。符号是可以定位到具体函数,甚至具体错在哪一行代码的。b) 当进程没有自保护或者没有反调试时,在input框输入g,回车,即可打开进程,此时如果进程发生崩溃,会被立即捕捉到。
2023-07-03 16:47:17
561
原创 Process Explorer高级使用
同时,上部的窗口依据ProcessExplorer的显示“模式”决定着底部窗口显示的内容:如果选择的是句柄模式,那么你将会在底部的窗口中显示的是上部窗口中选中进程所打开的句柄;2 步骤使用PE查看进程特性在vista下tab的进程运行在低MIC级别,见Integrity列为Low:这类似于在vista系统下IE7的“IE保护模式”,因为默认情况下高MIC级别的进程不响应低MIC级别进程的窗口消息,从而避免一些核心进程在浏览器遭到劫持后,被攻击,如窗口粉碎工具。虚拟内存、工作集等信息。
2023-07-03 16:42:13
1101
原创 通过方法名调用函数
unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,Buttons,ObjAuto;type{$MethodInfoON}TTestCall=class(TPersistent)publicfunctionAdd(X,Y:integer):integer;proc...
2022-03-25 14:50:46
211
转载 男人40岁对人生的感悟,让你大彻大悟!
一、时间会告诉我们:简单的喜欢最长远,平凡的陪伴最心安,懂你的人最温暖。二、记忆像是掌心里的水,不论你摊开还是紧握,终究还是会从指缝中一滴一滴流淌干净。三、没有人有义务共享你的负能量,你的烦恼总要学会自己去承担。四、如果你足够勇敢说再见,生活便会奖励你一个新的开始。五、就算生活再累再辛苦,只要身边有一个坚定陪伴的人就可以了,这就是人生。六、不要期待,不要假想,不要强求,顺其自然,如果注定,便一定会发生。心安,便是活着的最美好状态。七、一路走来,我们一边受伤,也一边..
2021-07-26 11:55:52
2656
原创 go输出dll的关键
package mainimport "C"import "fmt"//export PrintByefunc PrintBye() { fmt.Println("From DLL:Bye!")}//export Sumfunc Sum(a int, b int) int { return a + b}func main() {}1、红色的注释是必须的,函数无法导出2、main函数也是必须的在命令行调用go build -buildmo...
2020-12-05 12:09:51
408
原创 isuperobject的一个坑
str:='';jo:=so(str);n1:= jo.I['12']; //这里n1=12如果这样写:jo:=so();n1:=jo.I['12']; //这里n1=0 才是想要的结果
2020-08-25 20:57:50
1013
原创 delphi 双向链表,单向链表,泛型版本
//链表节点 TSingleLinkedNode<T> = class public Value: T; private m_Next: TSingleLinkedNode<T>; end; TMYLinkedNode<T> = class public Value: T; private m_Prev, m_Next: TMYLinkedNode<T>; end; //链表池 TL.
2020-05-15 15:10:09
442
原创 Record的序列化和反序列化 (delphi)
Record的序列化和反序列化TDefaultMessage = record //网络包头 Ident: Integer; nIsZlib: Integer; nLength: Integer; end;//记录转字符串function RecordToString(var Buf; bufSize: Integer; isZlib: Boole...
2020-05-07 17:37:56
705
原创 delphi 双向链表,单向链表,可以替换TList,添加删除效率更高
1、TList插入删除内存操作过于频繁,效率不高,可用以于链表替换2、下链表实现自带了一个Node分配池,以避免内存分配的频率。(包括:单线链表,双向链表,队列) //链表节点 pTSingleLinkedNode = ^TSingleLinkedNode; TSingleLinkedNode = record private Next: pTSingl...
2020-05-07 17:20:11
751
原创 delphi 服务端效率
1.适当使用链表,在数据量大和频繁的地方尽可能使用链表2.无关联数据用hash提高速度3.减少string的使用,最好用二进制消息,如pb等4.数据在一定时间内可以打包,时间可调节,超时也自动发送5.aoi视野管理方法6.可以前后端用某种事件id来代表消息及数据,事件变化发送id号...
2020-05-03 16:42:00
279
转载 KBEngine 服务器端-loginapp-协议构建、解析执行详细介绍
宏宏宏由于 C++ 是静态语言,不能像 js 一样通过函数名字符串来直接执行函数,所以将 messageId 映射到可执行函数的复杂性大大提升;KBEngine 使用了一系列精巧的「宏」来解决这个问题。为了叙述方便,我把需要通过 messageId 来映射执行的函数称为「协议函数」,以区分普通的函数。loginapp 的宏,统一在 loginapp_interface_macros.h...
2020-02-21 10:38:39
373
转载 kbengine + cocos2d-js-demo理解
KBEngine 是国内开源的游戏服务器引擎,据说参考了 Bigworld 的架构;网上能找到的开源游戏服务器引擎很少,网易的 Pomelo 是用 Node.js 来实现的,现在还是觉得 C/C++ 更熟悉些,就先从这个开始理解游戏服务器开发吧。有用链接《KBEngine 官网》 《KBEngine 服务器端架构》 《KBEngine 论坛》 《Bigworld 服务器编程指导》 ...
2020-02-21 10:36:57
850
1
原创 kbe常用宏展开示例(INSTANCE_SCRIPT_HREADER)
子类化将一些py操作填充进派生类类:class ClientObjectBase:public script::ScriptObject 属于脚本导出类宏操作展开为: static PyTypeObject _scriptType; typedef ClientObjectBase ThisClass; static PyObject* _tp_repr(P...
2020-02-16 19:04:25
401
原创 kbe常用宏展开示例(CLIENT_MESSAGE_DECLARE_STREAM)
虽然宏能减少重复代码编写,提高效率,但是属于机器语言,与人不太以好。不直观,不好调试。以下主要例举kbe中常用到的宏展开后的样子,以方便理解,阅读。文件(client_interface.h),客户端消息处理,RPC调用过程类:消息:onHelloCB类定义://消息处理者class onHelloCBClientMessagehandler_stream : public N...
2020-02-16 18:12:54
438
原创 kbengine-常用数据类型、数据类型加载
本文主要记录一下kbe常用数据类型,数据类型的加载,数据类型的操作类等。系统定义的数据类型有:bool DataTypes::initialize(std::string file){ // 初始化一些基础类别 addDataType("UINT8", new IntType<uint8>); addDataType("UINT16", new IntType&l...
2019-12-21 09:45:55
786
原创 delphi 泛型之 动态创建类的对象
delphi 泛型使用很是折腾,和c++的差得太远。特别是类模板的使用,创建很是麻烦,还好可以变通的写出来。以下举个例子,如何使用类模板。unit test1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics...
2019-12-06 14:14:58
757
原创 通过winnet.dll异步访问http.get,记录坑点
winnet.dll访问http get post还是很方便的,为了增加超时设置,需要使用异步的方式来调用api,其中的坑点太多,以此文记录一下,方便以后查看。先上代码:unit Unit2;interfaceuses Windows, WinInet, SyncObjs, SysUtils;//全局函数,支持超时function HttpGet(url: string; ...
2019-05-16 20:49:08
455
转载 go-json-rest框架实现Golang Restful API项目的开发
一、go-json-rest框架介绍go-json-rest(https://github.com/ant0ine/go-json-rest/)是基于net/http的一个小封装,可帮助轻松构建RESTful JSON API。它使用基于Trie的实现提供快速和可拓展的请求路由,帮助处理JSON请求和响应。它拥有丰富的中间件,比如CORS,Auth,Gzip,Status等,可帮助实现和拓展功能...
2019-04-08 09:36:14
575
转载 端游、手游服务端常用的架构是什么样的?
作者:韦易笑链接:https://www.zhihu.com/question/29779732/answer/45791817来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 类型1:卡牌、跑酷等弱交互服务端卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服...
2019-02-21 09:20:28
847
原创 一个压缩接口实现
一、首先定义一个压缩接口,以便支持不同的压缩方式//压缩接口,压缩类需要实现以下两个方法type Compressor interface { Compress(b []byte, c []byte) ([]byte, error) //压缩数据 Decompress(c []byte, b []byte) error //解压缩数据}//工厂类,创建不...
2019-01-13 16:21:24
1018
转载 Golang百万级高并发实践
写在前面Go语言作为新兴的语言,最近发展势头很是迅猛,其最大的特点就是原生支持并发。它使用的是“协程(goroutine)模型”,和传统基于 OS 线程和进程实现不同,Go 语言的并发是基于用户态的并发,这种并发方式就变得非常轻量,能够轻松运行几万并发逻辑。Go 的并发属于 CSP 并发模型的一种实现,CSP 并发模型的核心概念是:“不要通过共享内存来通信,而应该通 过通信来共享内存”。...
2018-12-17 11:09:26
1606
原创 golang接口的强制转换
在golang中接口相当于一个万能对象,和c++的auto差不多,比如定义一个存任何对象的map:type mymap map[int]interface{} //以int为key,值可以存任何类型type mydata struct { id int name string}func main(){ mm:= make(mymap) data1:= m...
2018-10-25 15:27:00
8871
2
原创 函数及函数指针
1、匿名函数及函数变量的使用package mainimport "fmt"func main() { f:= func(n int) error { //匿名函数及函数指针定义 fmt.Println(n) return nil } f(1) //指针函数变量调用函数}//print 12、通过map存放函数指针,及调用package ma...
2018-10-13 10:53:40
216
转载 接口或结构体的嵌套(struct,interface)
1、结构体的嵌套一package mainimport "fmt"type Person struct { name string}type Student struct { class int person Person //定义person 类型为Person}func main(){ s := Student{1,Person{"xiaomi...
2018-10-12 09:54:30
1819
转载 go调用windows api
golang调用windows的api函数,方法: import ( "fmt" "syscall" "unsafe")func abort(funcname string, err int) { panic(funcname + " failed: " + syscall.Errno(err).Error())}var ( kernel32, _ = ...
2018-10-09 15:04:44
3575
原创 go学习(11)收集,积累,整理
1、包管理及搜索假如你的项目main包在c:\test1下,gopath也包含了该目录,你要新加一个包,包名test,步骤如下:一、在c:\test1\新建一个目录,lib(梨子,为什么要新建目录,因为go中同一个目录中不允许有不同的包名)二、在main中引入包,import ("test1/lib"),这里不能用相对路径或绝对路径三、在代码中就可以使用lib下的test包了,.....
2018-10-08 11:05:44
192
转载 go学习(10)并发读写访问map问题
Golang 里面 map 不是并发安全的,这一点是众所周知的,而且官方文档也很早就给了解释:Why are map operations not defined to be atomic?. 也正如这个解释说的一样,要实现一个并发安全的 map 其实非常简单。并发安全实际上,大多数情况下,对一个 map 的访问都是读操作多于写操作,而且读的时候,是可以共享的。所以这种场景下,用一个 sy...
2018-10-01 23:20:59
1757
转载 go学习(9)string字符串函数
常用字符串操作函数类型转换比较对比搜索 查找 统计替换删除过滤大小写转换前缀后缀字符串分割拼接中拼接字符串方式对比package mainimport ( "bytes" "fmt" "strconv" "strings" "time")func main() { fmt.Println("字符串测试") fmt.Pr
2018-09-30 18:00:02
2024
原创 go学习(8)TCP编程
go网络编程简单易上手,tcp可以很容易实现一个客户端一个线程(goroutine),业务处理清楚明了。服务端:package mainimport ( "fmt" "net")const ( MAX_MSG_LENGTH = 1024 //每次最大收多少数据)//处理玩家数据func Echo(c net.Conn) { fmt.Printf("Client ...
2018-09-30 17:43:09
164
转载 go学习(7)struct 结构体
structGo语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型我们称之struct。如下代码所示:复制代码 代码如下:type person struct { name string age int}看到了吗?声明一个st...
2018-09-30 10:43:53
141
转载 go学习(6)interface接口
interfaceGo语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服。什么是interface简单的说,interface是一组method的组合,我们通过interface来定义对象的一组行为。interface类型interface类型定义了一组方法,如果某个对象实现了某个接口的所有...
2018-09-30 10:37:20
155
转载 go学习(5)协程
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。以下是我入门的学习笔记。首先,并行!=并发, 两者是不同的。Go语言的goroutines、信道和死锁goroutineGo语言中有个概念叫做goroutine, 这类似我们熟知的...
2018-09-30 10:17:16
183
转载 go学习(4)函数
函数是基本的代码块,用于执行一个任务,是构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。函数定义函数其实在之前已经见过了,第一次执行hello world程序的main()其实就是一个函数,而且是一个比较特殊的函数。每个go程序都是从名为main的package包的main()函数开始执行,包的概念不是这里的重点,以后做...
2018-09-30 09:58:42
547
转载 go学习(3)常用代码块
1、打印fmt.Println("asd")fmt.Printf("asd\n")fmt.Printf("asd is %s\n","aaa") 2、string和int互转strconv.Itoa(1) //转字符串strconv.Atoi("1") //转int 3、格式化日期time.Now().Format("20060102150405.
2018-09-30 09:10:30
398
原创 go学习(2)基础语法
1、标识符标识符首字母大写: 定义标识符如(常量、变量、类型、函数名、结构字段,接口)如果以一个大写字母开头,如:Group1,哪么使用这种形式的标识符的对象就可以被外部包的代码所使用(要使用需要先导入这个包),这种定义被称为导出(如c++类的public)。标识符首字母小写: 以小写字母开头,则对包外是不可见的,但是在整个包的内部是可见可访问的(如c++类...
2018-09-29 17:48:48
241
原创 go学习(1)开发环境安装
1,首先下载golang源码安装包(https://www.golangtc.com/download),windows版本一般为 go1.9.2.windows-amd64.msi,直接运行安装,默认安装到C:\Go,安装完后设置系统PATH,增加C:\Go2、下载开发环境liteide,(https://www.golangtc.com/download/liteide ),选择...
2018-09-29 17:25:48
232
google protobuf 文件IDE工具(最新版,支持c#)
2014-06-17
google protobuf 文件IDE工具
2014-03-24
poco/c++开源库学习资料打包下载
2014-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人