- 博客(134)
- 资源 (8)
- 收藏
- 关注
原创 proper list 和 improper list 的区别以及 improper list 会出现的问题
-module(test).-compile(export_all).-compile({inline,[server_id/0]}).server_id() -> 2396. ttt([H|T])-> io:format("[H|T]~n"), ttt(T);ttt([])-> io:format("[]"), ok.正
2012-05-11 00:26:59
1690
转载 Erlang 杂记
学习Erlang的时候在书的留白处随手记录了一些东西,还有一些记录在了demo的注释里面,今天抽时间整理出来了一部分,分享一下. Erlang的设计哲学是为每一个独立的事件创建一个新进程.Erlang的容错处理:如果不能完成一个任务就死掉 让其它正常的进程来善后。link函数就是用来建立这种进程间的双向连接来监测非正常退出,并做出处理。BIFs是built-in functions
2012-05-07 23:47:07
688
原创 erlang 预处理
-module(macro).-define(macro1(X, Y), {a, X, Y}). foo(A) -> ?macro1(A+10,b). 预处理compile:file(macro,['P']). -file("macro.erl", 1). -module(macro). foo(A) -> {a,A +
2012-04-23 13:18:32
443
原创 erlang 服务节点名称
erlang程序设计的 kvs 例子中,局域网 远程调用的节点名称。erl -name gandalf -setcookie abc. 如果机器没有该计算机名称,那么 节点名称会是 gandalf @localhost.localdomain 这个名字需要改一下。修改方法1. hostname mike.com2.vi /etc/sysconfig/network
2012-04-21 10:38:01
1631
原创 erlang 匿名函数,逗号和分号
7> Z=fun(X,Y) -> X+Y end. 返回匿名函数。#Fun8> Z(2,5).79>erlang中,逗号用于分隔单独表达式,分号用于分隔推导式(->),句号用于分隔函数定义。同一个推导式内部不能用分号分隔。
2012-04-19 23:11:44
2435
原创 erlang比特语法
比特语法>>Ei = Value | Value:Size | Value/TypeSpecifierList | Value:Size/TypeSpecifierList Type= integer | float | binary | bytes | bitstring | bits | utf8 | utf16 |u
2012-04-18 14:09:05
640
原创 erlang断言
G1;G2;G3 任何一个为true 就为true。就是or的意思G1,G2,G3 所有的都为true 就为true。就是and的意思
2012-04-16 23:05:30
838
原创 erlang 列表解析,变位词解析过程
perms("abc").perms([]) ->[[]];perms(L) -> [[H|T] || H a,perms("bc"). b,perms("c"). c.perms("") "abc"
2012-04-16 22:47:22
1077
转载 select sql 语句执行过程 顺序
(8)SELECT(9)DISTINCT(11)(1)FROM(3)JOIN(2)ON(4)WHERE(5)GROUPBY(6)WITH{CUBE| ROLLUP}(7)HAVING(10) ORDERBY熟悉SQL的人应该一眼就能看出来上面语句的作用,基本包括了我们一般查询表的写法,SQL不同于其他编程语言最明显的特征就是他的代码顺训。在大多数语言中,代码按编码的顺序被处理,但在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但几乎总是最后处理。 其实从逻辑
2010-11-24 22:47:00
636
原创 OD断点原理
<br />1,内存读写原理<br /> 内存的读写执行断点是通过修改内存页的保护属性来实现的,<br />2,硬件断点<br />只有4个<br />这个是通过 DR0-DR7这个八个寄存器来实现的<br /> <br />3,普通断点<br />是通过将指令修改为 int 3 来实现的
2010-10-20 22:25:00
537
原创 JMP 地址计算
<br /> <br />在某些时候需要在代码中写入JMP指令<br />JMP 二进制 =E9<br />比如我要 JMP到 7777ABCD<br />貌似E9 后跟的是RVA<br />所以<br />目标地址=指令所在地址+指令长度+RVA<br />即如果在 00552df7处 要跳到7777ABCD<br />那么<br />RVA=7777ABCD-00552df7-5=77227DD1<br />即在00552df7处写入E977227DD1
2010-08-08 10:45:00
4476
原创 在Windows中编程应该用的一些字符串相关宏
<br />由于API存在Unicode 和ASCII两个版本,所以在处理字符串上有些麻烦。。<br />幸好Windows为我们定义了一些宏<br />TCHAR,_T(),TEXT()...<br />lstrlen(),lstrcmp()....<br />这些宏在如果是在定义unicode的情况下,就调用unicode版本的API,如果没有定义就调用哪个ASCII版本的API<br />如<br />#ifdef UNICODE<br />#define lstrlen lstrlenW<br /
2010-07-14 00:21:00
434
原创 监视函数是否被设置 INT3 断点
OD中的Int3断点的主要功能是:在需要下断点的执行代码处将原来的代码改成0xCC,程序执行到此处后会报一个Int3异常,由OD捕获并处理。当要执行该行代码时,将原来的代码改回来并执行,然后再恢复断点,这样就不会影响程序的正常运行了。#include "stdafx.h"#include #include using namespace std;BOOL CheckBreakP
2010-05-09 09:00:00
1098
转载 另类挂钩-RING3数据包监视
另类挂钩 RING3数据包监视前几天朋友让帮忙写一个RING3程序来监视TCP包并做数据包分析本来想HOOK ws2_32!WSASend/Send/WSARecv/Recv,后来发现网上的方法都非常挫,尽是不稳定的HEADER INLINE和修改内存~用SPI之类的,又很麻烦于是自己写了一种方式实现,非常简单,隐蔽,而且在RING3下应该算是最底层的数据包拦截点了~目前实现了对HTTP包的过滤和
2010-05-05 23:39:00
1009
转载 DLL remote Inject
void InjectDLL(DWORD PID,char *Path) { DWORD dwSize; HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,PID); dwSize=strlen(Path)+1; LPVOID lpP
2010-05-05 22:58:00
927
原创 WSAAsyncSelect 和WSAEventSelect的用法
1.WSAAsyncSelect(pThis->m_SockListen, pThis->GetSafeHwnd(), WM_SOCKET, FD_ACCEPT | FD_CLOSE);WSAAsyncSelect 方法 进行socket i/o 需要自定义消息,需要窗口HWND,需要 把感兴趣的I/O事件|起来。 2.WSAEventSelect,虽然不用HWND,但就不是
2010-04-24 15:05:00
2874
原创 如何获取及其的公网IP
VC++没有提供专门的相关函数,但是可以通过访问一个查询IP的网页来获取本机的公网IP。给你找了个小例子你看下吧,不过得修改下之后移植到你的程序中: TCHAR szTempFile [MAX_PATH];UINT nResult=GetTempFileName (szTempPath, _T ("~ex"),0,szTempFile);int ret=URLDownloa
2010-03-29 20:49:00
642
转载 DBCC命令
今天把DBCC命令都一一使用了一下,做了笔记,防止忘记. 在调用命令时使用了一些参数,其中taobaoitem_0003是表名,ix_taobaoitem_0003是索引,taobao是数据库名称,taobao3是数据库文件.Transact-SQL 编程语言提供 DBCC 语句作为 SQL Server 的数据库控制台命令。数据库控制台命令语句可分为以下类别。
2010-01-10 00:59:00
952
转载 详解聚集索引与非聚集索引
最近由于系统的需求,所以要了解一下如何优化sql server,下面是我的一些总结,不足的地方希望大家批评指正。说要优化大家一定会想到索引,那我们就从索引开始吧。 微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引),下面就详细介绍一下。 (一)明明白白理解索引
2010-01-02 13:09:00
432
转载 Sql Server 2005 row_number()分页性能测试
现在分页方法大多集中在select top/not in/游标/row_number,而select top分页(在这基础上还有二分法)方法似乎更受大家欢迎,这篇文章并不打算去讨论是否通用的问题,本着实用的原则,花了一些时间去测试row_number()分页的性能,感觉并不像一部分人所说的那么鸡肋,由于接触软件开发才十个月,方方面面的东西都要学,经验实在有限,不足之处请原谅,测试如下:平台
2009-12-27 11:54:00
412
原创 JS中的括号
javascript中的括号JS中的括号除了 一般语言中都有的功能外,还有一个功能便是 最为一个立刻执行的功能比如(function(){})()这里用前面的括号定义了一个匿名的function后面的括号便是让这个匿名函数立即执行onload 在网页中所有的内容加载之后执行 (function(){ window["pp"]={};
2009-12-11 20:42:00
576
原创 asp.net ajax 类型系统demo
<!-- //注册命名空间 Type.registerNamespace("Demo"); Demo.Message=function(content,publishTime) { this._content = content; this._publishTime
2009-11-22 02:52:00
462
转载 Get 与 Post
一、 在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有两点不同: 1、Get方法通过URL请求来传递用户的输入。Post方法通过另外的形式。 2、Get方式的提交你需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。 提示 通过get方法提交
2009-11-18 23:17:00
518
原创 asp.net客户端脚本调用页面方法
第一步:将某个页面的方法 有 webmethod attribute; [WebMethod] //只能是 public static 的方法 public static DateTime GetCurrentTime() { return DateTime.UtcNow; } 第二步: 页面有一个ScriptManager 设置它
2009-11-14 10:27:00
505
原创 asp.net客户端脚本调用webservice
由于 asp.net ajax 封装了很多很好的方法,所以使用这个框架调用webwervice变的非常简单。第一步webservice 类的方法需要有scriptService的 attribute. namespace ServiceTest{/// ///WebService 的摘要说明/// [WebService(Namespace = "
2009-11-14 10:12:00
670
原创 Windows shell 介绍
想调用 explorer 的文件列表控件,搞了半天被很多SH开头的函数搞晕。。。查下,都是shellWindows外壳(Windows Shell),作为Windows API的组成部分,不仅允许应用程序访问操作系统shell提供的功能,还对之有所改进和增强。它位于16位Windows下的shell.dll中,以及32位Windows下的shell32.dll中(Windows 95则
2009-10-29 01:42:00
540
原创 几个操作系统的概念
线程上下文:老是看到线程上下文切换,到底会切换什么呢,包括:1,Instruction pointer 执行到那条指令2,用户和核心态堆栈指针3,指向这个线程所在的地址空间的指针 page table directory 一个线程的优先级 有进程和线程自身的优先级共同决定进程的虚拟地址空间每个进程的用户态地址空间是相互独立的在32位机上的虚拟地址空间有4G核心态地址
2009-10-28 16:38:00
535
原创 资源管理器 小结
没用过VC写程序的人,用它写程序真是太累来了,折腾了两天一个简单的资源管理器出炉,虽然辛苦,但还是值得的。小结一下这个程序在界面方面主要用了 CListCtrl和CTreeCtrl,这两个空间用来显示一些目录,文件。两天的时间没白费,把这两个控件使用方式大概弄明白了。现在发现有很框架的思想都是很相像的。 这个东西主要比较麻烦的是 对文件的遍历,和文件属性的操作。 大概用到下面这
2009-10-28 01:44:00
472
原创 如何改变CTreeView中的 CTreeCtrl的样式
想做个资源管理器,所以要用到 CTreeCtrl,不过我用了CTreeView,但是这个重来都没有注意过样式,今天有点头大,不过还是解决了。 要想有折叠按钮,在控件创建好之后用 SetWindowLong()去设置就好了。 SetWindowLong(GetTreeCtrl().m_hWnd,GWL_STYLE,GetWindowLong(GetTreeCtrl().m_h
2009-10-27 16:54:00
1814
转载 VC2008转到VC2005
VS2008 工程转为 VS2005 工程!1、用记事本打开 VS2008 的项目解决方案,也就是扩展名为 .sln 类型的文件,例如: Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C
2009-10-27 02:20:00
1223
原创 CTreeCtr使用
因为想写一个资源管理器,先用一下树形控件吧CTreeCtr new 了之后还要调用Create函数之后才能使用,在这个之后往往要一个CImageList对象与之共同使用。 SHFILEINFO 这个结构用于存储 一些文件的信息(资源管理器中会用到) DWORD_PTR SHGetFileInfo( LPCTSTR pszPath, DWORD dw
2009-10-26 15:17:00
1136
原创 服务管理器 小结
写了两天 终于把这个服务管理工具给写好了,这也算是我的一个VC程序了。现在发现其实一般的用VC没什么难的,只不过这个适应的过程有点长,比用.NET长好多啊,之前已经包装过一个视频卡的程序了。呵呵,看来是适应了,不过要深入,还是有一段很长的路的要走,比如要适应多线程,还有能够很流畅的写网络程序,这些东西,都还只是一点皮毛而已,而且我对Windows的理解也是不够的,慢慢来吧。 刚刚
2009-10-25 19:57:00
653
原创 rundll32 执行DLL中的某个函数
rundll32 命令可以执行DLL中的某个函数 先写个DLL文件 Mydll.cpp BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ Messag
2009-10-25 17:00:00
1344
转载 宽字符处理函数函数与普通函数对照表
宽字符处理函数函数与普通函数对照表 字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit() isdigit() 测试字符是否为数字 iswgraph()
2009-10-24 01:22:00
302
原创 DLL 注入进程
进程注入有很多方式,其中有一种利用远程线程技术来实现进程的注入。这个方式能实现主要是因为 DLL 动态加载的函数原型和线程函数的原型非常相像,所以这两个函数的指针式可以兼容的。 HMODULE LoadLibrary( LPCTSTR lpFileName);DWORD WINAPI ThreadProc(LPVOID lpParameter);在 调用 HANDLE C
2009-10-23 22:10:00
836
原创 DLL 导入的两种方式
1、隐式链接:隐式链接的特点是由编译器完成对DLL的加载和程序结束时对DLL的卸载工作,如果程序结束时如果还有其他应用程序使用该DLL,那么系统会使DLL的使用计数减1,当DLL的使用计数降为0时,会将DLL从内存中删除。★优缺点:隐式链接DLL的方法简单实用,但缺少灵活性。■使用方法:使用隐式链接DLL开发时,首先,需要将DLL的引入库文件(*.lib--编译生成DLL时,会一起生成的)与应用程
2009-10-23 16:30:00
7817
原创 Nunit 二
首先每个测试用列之间应该是独立的。不应该有任何的依赖关系。所以每个测试用列的数据都是独立的。 但是会存在这么一种情况。多个测试用列会使用同一组数据。这是这么办,难道要在每个测试用中都初始化 这一组数据吗,这样明显违反了DRY的原则。程序员都是偷懒的。那么 这时 Setup attribute开始有用处了。当某个方法 有这个attribute时 。在每个测试
2009-10-23 08:12:00
466
原创 Nunit一
keep the bar green to keep the code clean单元测试不是证明代码是对的,而是证明代码没有错简单使用方法被测试类 MathCompute.cs public class MathCompute { public int Largest(int[] array) {
2009-10-22 23:33:00
356
原创 动态库
这个东西其实没什么好记录的,随便记下吧 Windows操作系统平台:动态链接库:dll类型,静态链接库:lib类型;1、动态库简介:动态链接库可以看成是一种仓库,一种资源的集合:函数,变量,类,资源……都可以由动态链接库来导出。2、动态库与静态库的区别:a、静态库中的代码会直接塞到EXE中,而动态库则可以被EXE动态的加载或卸载;b、静态库中不能再包含其他的动态或静态库,而动
2009-10-22 09:32:00
653
linux系统分析与高级编程技术.rar
2009-05-26
GDI+程序设计.pdf
2009-03-20
ASP.NET相册控件(含源码)
2007-12-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人