
技术
文章平均质量分 65
阿凉Wlv
这个作者很懒,什么都没留下…
展开
-
敏捷软件开发宣言和敏捷宣言遵循的12个原则
摘自:《敏捷软件开发:原则、模式与实践》 Robert C.Martin【著】,邓辉【译】敏捷软件开发宣言 : 个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划(虽然右项也具有价值,但左项具有更大的价值) 敏捷宣言遵循的12个原则:1.我们转载 2009-03-06 15:27:00 · 946 阅读 · 0 评论 -
CEdit的自动滚动
1. CEdit 设置为MultiLine 变量名称为 CEdit m_GPSInfo 2.Auto VScroll 3. m_GPSInfo.SetRedraw(FALSE);//防止闪烁 int nLength = m_GPSInfo.SendMessage(WM_GETTEXTLENGTH); if (nLength > 10240) m_GPSInfo.Clear();原创 2009-03-25 11:04:00 · 2713 阅读 · 0 评论 -
用 C++ 创建简单的 Win32 服务程序
摘要 本文描述如何用 Visual C++ 创建 Windows NT 服务程序。创建该服务仅用到一个C++类,这个类提供服务与操作系统之间一个简单的接口。使用这个类实现自己的服务非常简单,只要改写少数几个基类中的虚拟函数即可。在本文有三个源代码参考例子: NTService 是一个简单的 Win32 服务,它就是用本文所描述的方法建立的; NTServCpl 是一个控制面版程原创 2009-03-25 11:05:00 · 1119 阅读 · 0 评论 -
WinDbg调试程序
什么是WinDBG? WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。由于大部分程序员不需要做Kernel模式调试,我在这篇文章中不会介绍Kernel模式调试。Kernel模式调试对学习Windows核心极有帮助。如果你对此感兴趣,可以阅读InsideWindows 2000和Windbg所带的帮助文原创 2009-03-25 11:06:00 · 990 阅读 · 0 评论 -
COM学习....
COM初始化if (CoInitialize(NULL) != S_OK) {return 1;}CoUninitialize();COM库的内存管理由于COM组件与客户程序,COM库三者之间内存交互(分配和释放可能不在同一个模块),所以必须使用一致的内在管理器。COM提供的内在管理器标准:class IMalloc:public IUnknow{ void* Al原创 2009-03-24 14:54:00 · 897 阅读 · 0 评论 -
常见排序算法
冒泡排序,插入排序,shell排序,快速排序,堆排序等。现在把代码帖出来,大家瞅瞅。// Sort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#define MAX 10void GetRandom(int a[],int n){ for (int i=0; i { a=rand()%(2*n); }}void Print(原创 2009-03-25 11:15:00 · 631 阅读 · 0 评论 -
Pro*C操作存储过程
EXEC SQL BEGIN DECLARE SECTION; unsigned int nUserID, friendID; int gid, nStartPos, nReqCount; VARCHAR db_link_name[32]; SQL_CURSOR cur_friendlist; int retcode; EXEC SQL END DECLARE SECTION原创 2009-03-25 11:07:00 · 919 阅读 · 0 评论 -
资源管理器默认打开指定盘
只要更改资源管理器的快捷方式属性中Target增加参数盘符:,/e即可。%SystemRoot%/explorer.exe d:, /e原创 2009-03-31 09:36:00 · 1084 阅读 · 0 评论 -
Lua脚本语法说明(修订)
Lua脚本语法说明(增加lua5.1部份特性) Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua程序了。 在Lua中,一切都是变量,除了关键字。I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你可以使用单行注释和多行注释。 单行注释中,连续两个减号转载 2009-07-30 16:57:00 · 1092 阅读 · 0 评论 -
Lua 5.1 参考手册
Lua 5.1 参考手册by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes云风 译 www.codingnow.comCopyright © 2006 Lua.org, PUC-Rio. All rights reserved. 1 - 介绍Lua 是一个扩展式程序设计语言,转载 2009-08-07 15:34:00 · 1894 阅读 · 0 评论 -
网络传输——结构体还是序列化?
虽然,网络编程里面的数据传送推荐用序列化,但我不用,还是选择结构体(返璞归真),有以下几点理由:1.跨平台问题: 序列化确实可以很好的跨语言平台,可大多数网络游戏不需要跨语言平台 2.别以为有了序列化就不需要结构体 表面上序列化代码量小,按顺序读和写char int short LPCSTR ... 就好,逻辑对象写不写都无所谓,那就是大错而特错了 待序列化的对象发送前的结构还是不可转载 2009-08-13 09:19:00 · 2517 阅读 · 0 评论 -
Babun, Great Windows Shell
-- git status different with git bashexecuting git config --global core.autocrlf true in babun should fix your problem-- how to set shortkey in .zshrcalias ..="cd .."alias ...="cd ../.."alia原创 2015-12-31 00:48:23 · 1002 阅读 · 0 评论 -
调试bug有奇招,15年的老司机 Bug 调试经验总结
原文出处:http://www.codeceo.com/article/13-years-bug.html编码下面这些都是我经历过的会导致难点bug的问题:1.事件顺序。在处理事件时,提出下列问题会很有成效:事件可以以不同的顺序到达吗?如果我们没有接收到此事件会怎么样?如果此事件接连发生两次会怎么样?哪怕通常不会发生,但系统(或交互系统)其他部分的bug可能转载 2016-10-31 15:36:30 · 643 阅读 · 0 评论 -
欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2016-11-24 14:27:31 · 447 阅读 · 0 评论 -
如何使类不能被继承
如果大家熟悉java的话应该知道java中有一种类不能被继承,那就是final类.这种类有很多用处,尤其是在大的项目中控制类的继承层次.使子类数量不至于爆炸.在使用了多继承的类层次中这也是防止出现菱形继承层次结构的一个好办法. 要实现一个不能被继承的类有很多方法. 如何使类不能被继承呢?主要的思路就是使子类不能构造父类的部分,这样子类就没有办法实例化整个子类.这样就限制了子类的继承原创 2009-03-25 11:00:00 · 987 阅读 · 1 评论 -
同步机制摘要
Critical section(临界区)用来实现“排他性占有”。适用范围是单一进程的各线程之间。它是: 一个局部性对象,不是一个核心对象。 快速而有效率。 不能够同时有一个以上的critical section被等待。 无法侦测是否已被某个线程放弃。 Mutex Mutex是一个核心对象,可以在不同的线程之间实现“排他性占有”,甚至即使那些线程分属不同进程。它是: 一个核心对象 如果拥有M原创 2009-03-25 10:59:00 · 694 阅读 · 0 评论 -
内联函数与宏的区别
内联函数是代码被插入到调用者代码处的函数。如同 #define 宏,内联函数通过避免被调用的开销来提高执行效率,尤其是它能够通过调用(“过程化集成”)被编译器优化。 内联函数和宏很类似,而区别在于,宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现的。而且内联函数是真正的函数,只是在需要用到的时候,内联函数像宏一样的展开,所以取消了函数的参数压栈,减少了调用的开销。你原创 2009-03-25 10:57:00 · 1162 阅读 · 0 评论 -
函数调用约定 stdcall, cdecl
论函数调用约定 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result =function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就转载 2009-03-09 17:03:00 · 699 阅读 · 0 评论 -
正则表达式
正则表达式30分钟入门教程版本:v2.3 (2008-4-13) 作者:deerchao 转载请注明来源目录跳过目录本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/转载 2009-03-20 11:45:00 · 564 阅读 · 0 评论 -
Makefile
Makefile学习教程: 跟我一起写 Makefile0 Makefile概述0.1 关于程序的编译和链接1 Makefile 介绍1.1 Makefile的规则1.2 一个示例1.3 make是如何工作的1.4 makefile中使用变量1.5 让make自动推导1.6 另类风格的makefile1.7 清空目标文件的规则2 Makefile转载 2009-03-25 10:14:00 · 818 阅读 · 0 评论 -
DNS attact, 存档以后研究
#require msf/core#require net/dns#require scruby#require resolvrequire Msf::Auxiliarymodule Msfclass Auxiliary::Spoof::Dns::BaliWickedHost include Exploit::Remote::Ip def initialize(info =原创 2009-03-25 10:29:00 · 760 阅读 · 0 评论 -
if 语句
4.3.1 布尔变量与零值比较 z 【规则 4-3-1】不可将布尔变量直接与 TRUE、FALSE 或者 1、0 进行比较。 根据布尔类型的语义,零值为“假” (记为 FALSE) ,任何非零值都是“真” (记为TRUE) 。TRUE 的值究竟是什么并没有统一的标准。例如 Visual C++ 将 TRUE 定义为1,而 Visual Basic 则将 TRUE 定义为-1。 假设布尔变量名原创 2009-03-25 10:31:00 · 528 阅读 · 0 评论 -
Debug 和 Release
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release Build不对源代码进行调试,不考虑MFC原创 2009-03-25 10:32:00 · 682 阅读 · 0 评论 -
多线程事件等待
多个线程等待一个事件时,自动重置事件:只有一个线程变为可调度状态手动重置事件:多个线程变为可调度状态原创 2009-03-25 10:33:00 · 686 阅读 · 0 评论 -
Windows消息大全
Windows消息目录1. WM_NULL=$0000:2. WM_CREATE=$0001: 应用程序创建一个窗口3. WM_DESTROY=$0002: 一个窗口被销毁4. WM_MOVE=$0003: 移动一个窗口5. WM_SIZE=$0005:改变一个窗口的大小6. WM_ACTIVATE=$0006: 一个窗口被激活或失去激活状态;7. WM_SETFOCUS=$0007原创 2009-03-25 10:35:00 · 621 阅读 · 0 评论 -
class存储空间,字节对齐
首先: 以下所有试验在32位机,VC.Net2003上运行。 class的存储空间有四点需要注意。 1。默认情况下以最大储存空间变量对齐。double-8,int-4,char-1,short-2,float-4,指针-4,虚函数-4,其实虚函数就是一个指针。以最大的对齐。存储空间必须是要对齐的字节个数的整数倍。 2。变量及虚函数的存储位置首地址必须是自身所占字节个数的整数倍。 3。可以使用原创 2009-03-25 10:37:00 · 1154 阅读 · 0 评论 -
C++的四种类型转换
在C中进行强制类型转换,直接()就可以了。在c++中,提供了四种类型转换,static_cast、dynamic_cast、reinterp_cast、const_cast。当然,如果你要用()强转也行,c++是兼容c的。关于这四种转换,网上有介绍很仔细很详细的。我这里只想简单的介绍其常用的规则。这些东西大多都用在转换指针上。static_cast 快速的类型转换,如果可以转换则一定原创 2009-03-25 10:46:00 · 1146 阅读 · 0 评论 -
获取最大重复子串
static int length = 1; //记录重复最长的子串长度vector > gVvec; //记录重复最长的子串 /* 得到一个字符重复的各个集合*/vector > getOneCharSameSet(const string& str){ //找一个字符重复时利用直接哈希,对质数取模(131包含所有assici字符范围) vector > vvec; f原创 2009-03-25 10:49:00 · 784 阅读 · 0 评论 -
memcpy
void* mymemcpy(void *dst,void *src,size_t count) { char *tmp, *s;/*如果目标地址小于源地址的话,从头开始拷贝*/ if (dest tmp = (char *) dest; s = (char *) src; while (count--) *tmp++ =原创 2009-03-25 10:50:00 · 2262 阅读 · 0 评论 -
指针与引用的区别
指针与引用看上去完全不同(指针用操作符“*”和“->”,引用使用操作符“. ”),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢? 首先,要认识到在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指原创 2009-03-25 10:57:00 · 597 阅读 · 0 评论 -
MacBookPro 键盘映射
作为一个码农,带TouchBar的键盘只有虚拟ESC。只好映射一下,下边的`当ESC不错。同时把caps_lock映射成Ctrl。那么ctrl+`改为`, shift+`改成~1.安装karabiner。2.设置karabiner属性里的simple modifications增加caps_lock to left_control3.增加脚本vim ~/.config/...原创 2018-11-07 22:29:42 · 2752 阅读 · 1 评论