上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: CDC::GetDeviceCaps()物理长度与屏幕像素间的转换作用:读取DC的一些打印区域信息,主要是像素和英寸方面的数据.声明:GetDeviceCaps(int )使用例子://所有像素数int pagecx=dc.GetDeviceCaps(HORZRES);int pagecy=dc.GetDeviceCaps(VERTRES);//即每英寸点数short cxInch = dc.GetDeviceCaps(LOGPIXELSX);short cyInch = dc.GetDeviceCaps(LOGPIXELSY);// 计算一个设备单位等于多少0.1mmdouble scale 阅读全文
posted @ 2013-10-18 10:57 陳さん様 阅读(630) 评论(0) 推荐(0)
摘要: C/C++编译前,首先要对源代码执行预处理。预处理器(preprocessor)是一个简单的程序,它用程序员(利用预处理器指令)定义好的模式代替源代码中的模式(删除注释、包含其他文件以及执行宏),预处理后生成中间文件.i(文本)。接下来对于.i文件进行语法分析。编译器把源代码分解成小的单元并把它们按树形结构组织起来。表达式中“A + B”中的“A”、“+”和“B”就是语法分析树的叶子节点。语法分析树建立后有时会根据用户定义,使用全局优化器(global optimizer)来生成更短、更快的代码。 全局优化器主要是进行以下优化:局部和全局公共子表达式消除在此优化中,计算一次公共子表达式的值.. 阅读全文
posted @ 2013-09-24 17:27 陳さん様 阅读(369) 评论(0) 推荐(0)
摘要: 经过本人亲自测试,对Excel进行排序,如果用到一般的排序,如冒泡排序,这里效率非常低,即使经过反复优化的话,效率也难达到秒杀地步。(比如 Rows.Count 达到e4的数量级时),如果直接使用VBA那就能实现高效排序: 升序:Sub MacroPinyin_Ascend()'' Macro1 Macro' 宏由 Chenwb 录制,时间: 2013-9-22' '表1 双字节区的21003汉字 '按照GB8030编码增序排列 Dim lRow As Long Dim lCol As Long Dim myRng As Range With W 阅读全文
posted @ 2013-09-22 08:54 陳さん様 阅读(313) 评论(0) 推荐(0)
摘要: 判断程序是否已经运行,使程序只能运行一个实例有很多方法,下面记录两种,方法1:线程互斥static class Program { private static System.Threading.Mutex mutex; /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); mutex = new System.Threading.Mutex(true, &quo 阅读全文
posted @ 2013-09-22 08:44 陳さん様 阅读(232) 评论(0) 推荐(0)
摘要: AFX_MANAGE_STATE(AfxGetStaticModuleState())的作用:用于模块切换时的状态保护,1.AfxGetStaticModuleState()指向当前模块状态;2.当前函数调用结束后原模块的状态自动被恢复;3.用于DLL中所调用MFC函数、类、资源时的模块状态切换;[MSDN]By default, MFC uses the resource handle of the main application to load the resource template. If you have an exported function in a DLL, such.. 阅读全文
posted @ 2013-09-11 09:44 陳さん様 阅读(279) 评论(0) 推荐(0)
摘要: OnLButtonDown函数虽然可以随时改变一个m_nColor的值,但是如果只是这样的话,OnDraw函数是不会调用的(除非用户改变视图的大小),因此,OnLButtonDown函数必须调用InvalidateRect函数(它是CMyView类从CWnd继承过来的成员函数),它能触发Windows的WM_PAINT消息,该消息又在CView类被映射,以引起对OnDraw的调用。如果有必要,OnDraw函数还可以访问传给InvalidateRect的"无效矩形区域"参数。 有两种情况可以优化Windows的绘制过程。第一,我们必须知道WIndows只更新无效的矩形内部的像 阅读全文
posted @ 2013-07-27 13:46 陳さん様 阅读(306) 评论(0) 推荐(0)
摘要: 2013-07-04在辅助线程的循环里检查一个全局变量很有意义,那么如果主线程这样做会怎么样呢?当然应该杜绝那么比较笨重的函数;UINT ComputerThreadProc(LPVOID pParam){ g_nCount = 0; while(g_nCount < 100){ //Do some computation here ::InterlockedIncrement((long*)&g_nCount); } return 0;}其实我们并不想让主线程进入一个循环,因为那样会浪费CPU周期,而且主线程总是有一个消息循环。这就是说,主线程有一个窗口(可见或不可见... 阅读全文
posted @ 2013-07-04 17:15 陳さん様 阅读(757) 评论(0) 推荐(0)
摘要: 博文带着3个疑问学习:(整理的有错误,请大家帮我改正)问题1:CLR管理内存的三块区域是什么?问题2:哪些操作会 创建对象和分配内存?问题3:内存的分配机制?1.CLR管理内存的三块区域注:内存——堆栈 堆(托管堆)线程的堆栈:用于分配值类型的实例-有操作系统管理分配释放内存。GC堆(托管堆):用于分配引用类型的实例对象内存小于8500 byte的。当有内存分配时,垃圾回收器"可能"会对GC堆进行压缩。LOH堆(Large Object Heap):用于分配引用类型的大对象实例(大于8500byte),不会被垃圾回收器压缩,而且只在GC堆完全被回收时回收。2.哪些操作会 创 阅读全文
posted @ 2013-05-20 10:48 陳さん様 阅读(366) 评论(0) 推荐(0)
摘要: TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据,... 阅读全文
posted @ 2013-03-21 11:28 陳さん様 阅读(318) 评论(0) 推荐(0)
摘要: TCP协议在能够发送数据之前就建立起了“连接”。要实现这个连接,启动TCP连接的那一方首先将发送一个SYN数据包。这只是一个不包含数据的数据包, 然后,打开SYN标记。如果另一方同时在它收到SYN标记的端口通话,它将发回一个SYN+ACK:SYN和ACK标志位都被打开,并将ACK(确认)编 号字段设定为刚收到的那个数据包的顺序号字段的值。接下来,连接发起方为了表示收到了这个SYN+ACK信息,会向发送方发送一个最终的确认信息(ACK 包)。这种SYN、SYN+ACK、ACK的步骤被称为TCP连接建立时的“三次握手”。在这之后,连接就建立起来了。这个连接将一直保持活动状态,直到 超时或者任何一. 阅读全文
posted @ 2013-03-21 11:25 陳さん様 阅读(1070) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页