代码改变世界

WIN8 下 Hyper-V和Vmware Workstation

2014-01-22 14:50 by 彭白洋, 175 阅读, 0 推荐, 收藏, 编辑
摘要:1 管理员身份运行命令提示符 cmdbcdedit /copy {current} /d “Windows 8 Without Hyper-V2 记下 { } 中的代码bcdedit /set {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} hypervisorlaunchtype OFF3重启,选择是否启用 Hyper-V 阅读全文

关于在IWebBrowser中无法响应Ctrl+C等快捷键的解决方法

2013-06-13 09:29 by 彭白洋, 379 阅读, 0 推荐, 收藏, 编辑
摘要:最近在WIN32项目中用到IWebBrower2接口,发现复制粘贴等快捷键无法使用,后再网上查询到可以再消息循环阶段拦截IE的消息进行处理,代码如下: 1 if (msg.message >= WM_KEYDOWN && msg.message < WM_KEYLAST) { 2 TCHAR szClassName[256] = {0}; 3 ::GetClassName(msg.hwnd, szClassName, 256); 4 if (_tcsicmp(szClassName, _T("Internet Explorer_Server")) 阅读全文

定点数的表示

2012-07-18 16:40 by 彭白洋, 2153 阅读, 0 推荐, 收藏, 编辑
摘要:定点数的表示所有的定点数学实际上是以整数尺度为基础的。比如,我们想用一个整数来表示10.5。这做不到,因为没有小数位。你可以将其截断为10.0或将其舍入为11.0,但10.5不是一个整数。但如果你将10.5放大10倍,10.5就变成了105.0,这是一个整数。这便是定点数的基础。你可以采用某一比例系数来对数值进行缩放,并在进行数学计算时将比例系数考虑进去。由于计算机是二进制的,大部分游戏程序倾向于使用32位整数(或int),以16.16的格式来表示定点数。你可以将整数部分放在高16位,小数部分置于低16位。这样你已将整个数值放大为原来的2^16即65536倍。另外,为提取出一个定点数的整数部分 阅读全文

位操作实现加减乘除

2012-07-13 17:46 by 彭白洋, 225 阅读, 0 推荐, 收藏, 编辑
摘要:1 // Bit Operation Implements Add, Submit, Multiply, Divide 2 // Use only Integer with little length 3 4 #include <iostream> 5 using namespace std; 6 7 // add 8 int add( int a, int b ){ 9 int c; 10 while( c = (a&b) ){ 11 a = (a^b); 12 b = (c<<1); 13 } 14 return (a^b); 15... 阅读全文

关于内存地址对齐

2012-07-12 15:33 by 彭白洋, 543 阅读, 0 推荐, 收藏, 编辑
摘要:内存地址对齐,是一种在计算机内存中排列数据、访问数据的一种方式,包含了两种相互独立又相互关联的部分:基本数据对齐和结构体数据对齐。当今的计算机在计算机内存中读写数据时都是按字(word)大小块来进行操作的(在32位系统中,数据总线宽度为32,每次能读取4字节,地址总线宽度为32,因此最大的寻址空间为2^32=4GB,但是最低2位A[0],A[1]是不用于寻址,A[2-31]才能存储器相连,因此只能访问4的倍数地址空间,但是总的寻址空间还是2^30*字长=4GB,因此在内存中所有存放的基本类型数据的首地址的最低两位都是0,除结构体中的成员变量)。基本类型数据对齐就是数据在内存中的偏移地址必须.. 阅读全文

DLL中用malloc分配了一块内存,但是在exe程序中释放引发的错误:其原因可能是堆被损坏,这也说明 **.exe 中或它所加载的任何 DLL 中有 bug。

2011-10-26 09:25 by 彭白洋, 416 阅读, 0 推荐, 收藏, 编辑
摘要:<原帖地址:http://blog.csdn.net/geeeeeeee/article/details/3686961>写了个程序,在DLL中用malloc分配了一块内存,但是在exe程序中释放,结果程序crash,原因就是:其原因可能是堆被损坏,这也说明 TestMySticker.exe 中或它所加载的任何 DLL 中有 bug。想了半天以为是自己的写法有问题,后终于在google上找到了原因,汗。。。以下文字引用自http://hi.baidu.com/huhe/blog/item/0b422edd1f1563d98c1029a3.html很感谢作者的分析一个模块一个堆,一 阅读全文

[收集] SendMessage、PostMessage原理

2011-06-30 16:25 by 彭白洋, 332 阅读, 0 推荐, 收藏, 编辑
摘要:本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实现。注:理解这篇文章之前,必须先了解Windows的消息循环机制。1、SendMessage、PostMessage的运行机制我们先来看最简单的。SendMessage可以理解为,SendMessage函数发送消息,等待消息处理完成后,SendMessage才返回。 阅读全文

send函数 recv函数

2011-06-23 17:08 by 彭白洋, 328 阅读, 0 推荐, 收藏, 编辑
摘要:send函数int send( SOCKET s,const char FAR *buf,int len,int flags );不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明一个存放应用程序要发送数据的缓冲区;第三个参数指明实际要发送的数据的字节数;第四个参数一般置0。这里只描述同步Socket的send函数的执行流程。当调用该函数时,send先比较待发送数据的长度len和套接字s的发送缓冲的长度, 如果len大于 阅读全文

socket函数

2011-06-23 17:04 by 彭白洋, 283 阅读, 0 推荐, 收藏, 编辑
摘要:SOCKET socket( int af, int type, int protocol ); 应用程序调用socket函数来创建一个能够进行网络通信的套接字。第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置AF_INET;第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM、原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据报以及协议首部);第三个参数指定应用程序所使用的通信协议。该函数如果调用成功就返回新创建的套接字的描述符,如果失败就返回INVALI 阅读全文

[收集]XMPP使用tls 和sasl登录

2011-06-22 12:06 by 彭白洋, 575 阅读, 0 推荐, 收藏, 编辑
摘要:名词解释TLS:安全传输层协议 TLS:Transport Layer Security 名词:安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。SASL全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。在Postfix可以利用SASL来判断用户是否有权使用转发服务,或是辨认谁在使用你的服务器。--------- 阅读全文