- 博客(55)
- 资源 (1)
- 收藏
- 关注
转载 多线程 UI 问题
你不贴代码没法确定你的问题所在。MFC的窗口是用GDI画的,GDI本身不是线程安全的。就是说,如果多个线程同时在一个窗口里画东西,必须用同步机制保证在一个时间点只有一个线程在画。我估计你的问题多半就是因为没有做线程之间的同步。微软官方参考文档:http://msdn.microsoft.com/en-us/library/ms684256(VS.85).aspx
2012-07-31 17:44:07 469
转载 flickr网站用到的php技术
软件架构 Flickr的开发者卡尔·韩德森(Cal Henderson),在2005年温哥华PHP协会的简报上,公开了大部分Flickr所使用的背后技术。这个平台是由以下技术组成: ·PHP - 用于核心程式逻辑 ·Smarty模组引擎 ·PEAR - 用于XML和电子邮件 ·Perl - 控制(Controlling)
2012-07-31 16:18:34 573
转载 Openssl 目录名以及功能解析
Openssl目录名以及功能描述目录名功能描述Crypto存放OpenSSL 所有加密算法源码文件和相关标注如X.509 源码文件,是OpenSSL 中最重要的目录,包含了OpenSSL 密码算法库的所有内容。SSL存放OpenSSL 中SSL 协议各个版本和TLS 1.0
2012-07-30 12:55:37 4614
转载 OpenSSL介绍
一、SSL介绍 SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的SSL协议,已成为Internet上保密通讯的工业标准。安全套接层协议能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务
2012-07-30 12:48:09 871
转载 对称加密/非对称加密
对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程
2012-07-30 12:43:52 4570
转载 windows批处理 等待子进程退出
从DOS过来的老鸟应该都知道批处理,这个功能在WINDOWS中仍然保留着。批处理说白了就是把一系列DOS命令写在一个文本文件里,然后把这个文件命名为XXX.bat(WINXP以后的系统也可以命名为*.cmd),然后运行它就可以一次执行一系列命令和程序了,当然也包括WINDOWS下的程序。昨天处理一个问题时需要写一个批处理,批处理的前面运行了几个DOS命令,最后调用一个WINDOWS程序。可
2012-07-30 11:01:18 6403
转载 windows批处理
批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批 处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到 的用批处理文件来给系统打
2012-07-30 10:10:33 2474
转载 get post 本质区别
GET与POST你可能想了解GET和POST之间有什么区别,并想知道什么时候使用它们。从理论上讲,如果请求是幂等的就可以使用GET,所谓幂等是指多个请求返回相同的结果。实际上,相应的服务器方法可能会以某种方式修改状态,所以一般情况下这是不成立的。这只是一种标准。更实际的区别在于净荷的大小,在许多情况下,浏览器和服务器会限制URL的长度URL用于向服务器发送数据。一般来讲,可以使用GET从服务器获
2012-07-26 23:27:08 768
转载 关于socket长连接的心跳包
出于最近对im研究的兴趣,看到smack里有个30s发送一个空消息的线程,了解了下关于心跳包,keepalive的知识。 TCP的socket本身就是长连接的,那么为什么还要心跳包呢?搜索到的资料解释如下:一:内网机器如果不主动向外发起连接,外网机没法直连内网的,这也是内网机安全的原因之一吧,又因为路由器会把这个关系记录下来,但是过一段时间这个记录可能会丢失 ,所有每一个客户端每隔
2012-07-25 13:07:37 2728
转载 Linux TCP/IP协议栈之Socket的实现分析 第一部份 Socket套接字的创建 (-)
内核版本:2.6.12作者:kendo版权所有,转载请注明出处[www.skynet.org.cn];说明:这仅仅是一个笔记,由于偶的水平有限,我甚至不能保证其中内容正确率超过80%。另外,我不太习惯在代码中注解来自哪个文件,第几行之类的,因为偶是直接通过source insight双击鼠标跳转之。第一部份 Socket套接字的创建socket并不是TCP/IP协议的一
2012-07-25 12:51:48 1195
转载 tcp listen和accept过程
详细看此贴:http://topic.csdn.net/u/20110619/19/53181BF0-79F5-4F86-889F-927EE80233DD.htmllisten函数调用,将该套接字和套接字对应的链接队列长度告诉linux内核,linux内核自动完成tcp3次握手,将建立好的链接自动存储到队列中。accept去内核的消息队列中取链接
2012-07-25 11:54:36 4867
转载 apache的IfDefine和IfModule设置
指令说明 封装一组只有在启动时当测试结果为真时才生效的指令 语法 ... 作用域 server config, virtual host, directory, .htaccess 覆盖项 All 状态 核心(C) 模块 core...配置段用于包含有条件的指令。配置段中的指令仅当test结果为真时才进行处理。如果test为假。此配置段中的指令将会被忽略
2012-07-25 11:31:27 15615
转载 TCP三次握手/四次挥手详解
1、建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。(3) 客户必须再次回应服务段一个ACK报文,这是报文段3。2、连接终止协议(
2012-07-25 11:02:27 750
转载 几种数据结构的性能比较-很惊人
项目中需要用到map类数据结构,key为32位整数。要求支持插入,删除,查找,find_next, find_prev操作,另外要求查找性能好,空间效率也不能差。于是找到一些实现做了测试,有patricia tree, avl tree, red-black tree, radix tree.patricia tree: 一种带路径压缩的bitwise trieavl tree: li
2012-07-24 15:31:14 3845
转载 红黑树 VS AVL树
1 好处 及 用途 红黑树并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。红黑树能够以O(log2 n) 的时间复杂度进行搜索、插入、删除操作。此外,由于它的设计,任何不平衡都会在三次旋转之内解决。当然,还有一些更好的,但实现起来更复杂的数据结构 能够做到一步旋转之内达到平衡,但红黑树能够给我们一个比较“便宜”的解决方案。红黑树的算法时
2012-07-24 15:29:25 34405 1
转载 Trie树
1、 概述Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。Trie一词来自retrieve,发音为/tri:/ “tree”,也有人读为/traɪ/ “try”。Trie树可以利用字符串的公共前缀来节约存储空间。如下图所示,该trie树用10个节点保存了6个字符串tea,ten,to
2012-07-24 15:28:53 1325
转载 关联数组
关联数组和数组类似,由以名称作为键的字段和方法组成。 它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是, 关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,可以在以后用于检索数组中的数值。 关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡片上半部分是索引而下半部分是数值。 JavaScript的对象本质就是一个
2012-07-24 15:25:34 609
转载 chrome涉及开源项目
Google Chrome是一个优秀的开源的浏览器,其开发过程大量地使用了网上现在成熟稳定的开源代码,目前Chrome所涉及25个开源代码:1、Google Breakpad /src/breakpad 开源的跨开台程序崩溃报告系统。 2、Google URL /src/googleurl Google小巧的URL解析整理库。 3、Skia
2012-07-21 09:09:12 722
转载 DispatchMessage 函数干了啥?
DispatchMessage函数主要分发一个消息给窗口处理函数。具体实现代码如下:#001 LRESULT WINAPI#002 DispatchMessageW(CONST MSG *lpmsg)#003 {#004 LRESULT Ret = 0;#005 PWINDOW Wnd;#006 检查是否有窗口,如果有窗口,再判断窗口是否
2012-07-20 14:05:16 3654
转载 windows 进程作业对象 管理一组 进程
通常,必须将一组进程当作单个实体来处理。例如,当让Microsoft Developer Studio为你创建一个应用程序项目时,它会生成C l . e x e,C l . e x e则必须生成其他的进程(比如编译器的各个函数传递)。如果用户想要永远停止该应用程序的创建,那么Developer Studio必须能够终止C l . e x e和它的所有子进程的运行。在Wi n d o w s中解
2012-07-19 16:48:12 5518
转载 chrome源码学习之知识体系指南
google chrome浏览器的源代码是非常庞大的,为了较快的进入学习状态,有必要事先对一些知识点进行说明,这里不是要详细说明里面的细节,而是从概念层次阐明一些注意事项。这里谈到的东西也不一定说非要事先把这些东西搞得很明白才能去学习源代码,主要还是先给大家一个心理准备。当然如果你最终要在细粒度的层次掌握源代码细节,那么这些知识点必须非常清楚,不过这可以结合源代码的时候再针对性的来澄清这些知识点。
2012-07-18 18:13:32 996
转载 chrome源代码目录结构简介(版本4.1.249.1059)
为了对庞大的源码项目进行分析,先对源码目录树作一个简单的介绍,粗略的了解一下各个模块的功能分布情况,chrome源代码src目录下的结构如下图:app:该目录下的代码主要是和各个操作系统平台相关的应用上层代码的提炼。不同操作系统可能对应不同的c++实现文件。比如裁剪板操作、操作系统数据交换接口、资源管理等。代码量不大。base:基础设施代码,该目录下的代码对理解chrome
2012-07-18 18:13:04 794
转载 信号量和事件---信号量
关于复杂的多线程和多进程应用程序的映射指南级别: 高级Srinivasan S. Muthuswamy, 软件工程师, IBM Global Services GroupKavitha Varadarajan, 软件工程师, IBM India Software Lab2005 年 6 月 27 日随着开发人员将一些普及的 Windows®
2012-07-17 09:50:10 5434
转载 信号和事件--事件篇
事件在 Windows 中,事件对象是那些需要使用 SetEvent() 函数显式地将其状态设置为有信号状态的同步对象。事件对象来源有两种类型:在 手工重置事件(manual reset event) 中,对象的状态会一直维持为有信号状态,直到使用 ResetEvent() 函数显式地重新设置它为止。在 自动重置事件(auto reset event) 中,对象的状态会一直维持为有信号
2012-07-17 09:49:22 7547
转载 C++类对象内存模型与成员函数调用分析(中)
2.4 虚拟成员函数这是本文中最复杂也最有趣的话题了。虚拟函数也是和继承这个话题相伴相生,所以本节将纳入对单继承、多重继承和虚拟继承,一起描述他们之间的关系,这样,对C++对虚拟函数的调用,以及由此所变现出来的多态的理解,应该是非常清晰了。2.4.1 单继承下的虚拟成员函数对于虚拟函数,我们首先引入两个数据结构,为什么引入一会就知道了。1
2012-07-13 09:46:21 586
转载 C++类对象内存模型与成员函数调用分析(上)
C++类对象内存模型是一个比较抓狂的问题,主要是C++特性太多了,所以必须建立一个清晰的分析层次。一般而言,讲到C++对象,都比较容易反应到以下这个图表: 这篇文章,就以这个表格作为分析和行文的策略的纵向指导;横向上,兼以考虑无继承、单继承、多重继承及虚拟继承四方面情况,这样一来,思维层次应该算是比较清晰了。1、C++类数据成员的内存模型1.1 无继承情况实验最能说明
2012-07-13 09:27:22 787
转载 编译器那点事 Name-mangling
Name-mangling是指为了在目标文件符号表中和连接过程中使用的名字通常和编译目标文件的源程序中的名字不一样,编译器将目标源文件中的名字进行调整。Name-mangling不是一个非常新的技术,例如在C语言中也有,我们在汇编C语言时经常看到的以下划线“_”开头的函数名,其实就是C编译器将函数名进行了Name-mangling。 但是在C++中Name-mangling要复杂的多。因为C+
2012-07-13 09:26:26 867
转载 C++ 应用程序 内存结构 --- BSS段,数据段,代码段,堆内存和栈
转自:http://hi.baidu.com/%C6%BF%D6%D0%B5%C4%C5%AE%CE%D7/blog/item/5043d08e741075f3503d922c.htmlld 时把所有的目标文件的代码段组合成一个代码段,把所有的数据段组合成一个数据段.##############################################################
2012-07-13 08:52:04 3972
转载 dll、com 二进制模块封装内幕
http://www.diybl.com/course/3_program/c++/cppjs/200833/102641.htmlDLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。
2012-07-12 18:16:34 2628
转载 dll的隐式链接
我的两个回答不是一对一的解答,但是看明白的话,你的三个问题的答案也就有。一对一回答:1. 我想纯虚函数只是一个地址,编译程序会把纯虚函数放在一个结构中存储。实际vtTable就是一个结构,内置那些地址。非纯虚函数地址指向一个函数。纯虚没有函数。2.调换不会发生错误,但是顺序是跟头文件有关系的。3.这个不用回答了,没有函数输出,没有代码用于执行,export它做什么?2楼
2012-07-12 16:59:14 659
原创 从设计角度上看 同步、异步
1、理论上所有的同步模式都能改成异步,你需要等待事件的场景下,让回调执行接下来的流程即可2、从设计角度讲,同步保留了上下文,设计变得简单、明了!再不需要考虑性能、等待耗时的情况下,同步是上计策3、从设计角度讲,异步需要上下文,设计变得复杂,(上下文可以随着函数式编程带过去(推荐)、或者自己存(非函数式编程,恶心的编程方式),但是需要考虑性能和等待耗时的情况下,异步上计策
2012-07-11 17:08:55 592
转载 如何使用名为 Visual Basic 的 32 位程序中的管道
参考:http://support.microsoft.com/kb/177696/zh-cn如何使用名为 Visual Basic 的 32 位程序中的管道文章编号: 177696 - 查看本文应用于的产品查看机器翻译免责声明点击这里查看逐句中英文对照机器翻译系统提示注意:本篇文章的内容适用于其他版本的 Wind
2012-07-11 14:40:13 834
转载 IPC 额外知识
1、IPC的持久性1)进程相关的:IPC中数据一直存在到最后一个关联进程关闭时pipe、fifo等2)内核相关的IPC:IPC中数据一直存在,除非内核重启或删除消息队列,共享内存等3)文件系统相关的IPC:IPC中数据一直存在,除非显式删除文件2、管道匿名管道(pipe):只能用于同一个祖先的进程组有名管道(fifo):不相关
2012-07-11 14:27:57 701
转载 IPC通信比较
IPC通信1、单工单工就是指A只能发信号,而B只能接收信号,通信是单向的,就象灯塔之于航船——灯塔发出光信号而航船只能接收信号以确保自己行驶在正确的航线上。 2、半双工半双工就是指A能发信号给B,B也能发信号给A,但这两个过程不能同时进行。最典型的例子就象我们在影视作品中看到的对讲机一样:3、全双工比半双工又进了一步。在A给B发信号的同时,B也可以给A发信号。
2012-07-11 14:27:02 3480
转载 什么是 .manifest 文件
恩,为了大家都能很方便的理解,我将尽量简单通俗地进行描述。[现象]对这个问题的研究是起源于这么一个现象:当你用VC++2005(或者其它.NET)写程序后,在自己的计算机上能毫无问题地运行,但是当把此exe文件拷贝到别人电脑上时,便不能运行了,大致的错误提示如下:应用程序配置不正确,请重新安装程序……或者是MSVCR80D.dll 没有找到什么的(我记得不是很清楚,不过大致是这样的)
2012-07-06 15:58:20 1696
转载 Visual Studio build event command line 使用方法
一、修改一个工程生成的主文件的扩展名。 说明:一个工程,如果设置输出类型为class library,则编译链接后生成的主文件默认的扩展名为.dll。如果有需要要将扩展名改为其他,如.plugin,那么如何设置呢?问题:在VS2008中,C#类型的工程的属性中并没有设置输出文件名称这一项。。。解决:在Build Events标签的Pre-build events c
2012-07-06 14:59:28 1338
转载 常见MIME类型
1、text/html是html格式的正文 2、text/plain是无格式正文3、text/xml忽略xml头所指定编码格式而默认采用us-ascii编码4、application/xml会根据xml头指定的编码格式来编码:建议你去查以下MIME的类型!
2012-07-03 17:37:49 447
转载 查看dll导出的符号
有时出于好奇,我们总想知道别人提供的DLL里面到底导出了哪些函数、哪些变量,使用dumpbin和Depends便可以做到这一点。本文以ACE examples 中的export_dlld.dll为例说明其用法。1、 dumpbin假设export_dlld.dll位于F:\ACE-5.4.1+TAO-1.4\ACE-5.4.1+TAO-1.4\ACE_wrappers\examples
2012-07-03 17:15:53 11351
转载 http-关于application/x-www-form-urlencoded等字符编码的解释说明
在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 下边是说明: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。 text/plain: 窗体数
2012-07-03 10:23:07 123650 10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人