首页

小技巧:关于Sleep的用法及注意事项

在MFC程序开发中,我们经常会使用到Sleep函数。这个函数的作用是暂停当前线程的执行。其函数原型如下: VOID WINAPI Sleep( _In_ DWORD dwMilliseconds ); 这个函数接收一个参数dwMilliseconds,指定当前线程暂停执行的时间,以毫秒为单位。我们具体看看这个参数的用法: 1) 当传入的参数值为0时,表示当前线程向系统提出请求,放弃其剩余的执行时间...
  • 阅读全文 |
  • 分类:小技巧 |
  • 发表于:10月14日 |
  • 浏览:1804 |
  • 评论已关闭 条评论

实战经验:QEMU启动虚拟机只显示VNC server running on ::1:5901

系统版本: CentOS 7.3(1611) 在使用QEMU启动KVM虚拟机时,指令执行后,控制台只出现了如下的提示: VNC server running on ::1:5901 解决方法步骤如下: 1) 安装SDL开发库 # yum install SDL-devel 2) 重新编译QEMU # ./configure –target-list=x86_64-softmmu 执行以...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:10月09日 |
  • 浏览:5178 |
  • 评论已关闭 条评论

实战经验:CentOS 7.3安装完整开发环境

系统版本: CentOS 7.3(1611) 安装开发环境: 1) 通过group安装 # yum groups mark install “Development Tools” # yum groups mark convert “Development Tools” # yum groupinstall “Development To...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:09月29日 |
  • 浏览:2352 |
  • 评论已关闭 条评论

Deleaker专题:记购买Home版Deleaker经历  

在经过14天的Deleaker试用之后,觉得这东西在侦测内存及GDI对象泄漏方面还是挺好用的,于是决定购买。 一. 选择授权模式 Deleaker官方网站(http://www.deleaker.com/)上列出了Deleaker的几种授权模式: 1) Home版 99刀,购买后用于个人开发者使用。 2) Single Developer版 399刀,购买后用于在公司里的单个开发者使用。 3) S...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:09月28日 |
  • 浏览:2838 |
  • 评论已关闭 条评论

Deleaker专题:未调用CloseHandle导致的线程句柄泄漏问题  

多线程应用中常常使用_beginthreadex函数来创建线程,在线程同步中,往往需要等待一个线程执行结束,这时WaitForSingleObject就可以派上用场。今天主要是研究线程句柄资源泄漏的问题。 在本文中,我们主要使用到了资源泄漏检测利器Deleaker。先考察以下示例程序: unsigned _stdcall TestThreadProc(void * param) { Sl...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:09月24日 |
  • 浏览:2575 |
  • 评论已关闭 条评论

Deleaker专题:记一次GDI对象泄漏经历  

无意间打开任务管理器查看程序GDI对象计数,发现程序每次最小化然后最大化后,GDI对象增1,说明GDI资源存在泄漏。 GDI资源泄漏就像牙疼一样,平时没什么感觉,最后发作的时候,可是要人命的。随着程序长时间运行,GDI资源慢慢泄漏,主要特征为任务管理器中的GDI对象计数不断增加,最后系统不堪重负,程序运行缓慢,直至最后崩溃。 下面开始诊断: 1) 使用GDI资源泄漏工具GDIndicator,打开...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:09月16日 |
  • 浏览:3194 |
  • 评论已关闭 条评论

参考:TCP/UDP 端口号范围

以下内容来自RFC6335: 一个端口号由一个16位数字表示,范围0~65535。端口号由IANA负责分配,主要分为3大类: 1) 系统端口(Well known port) 系统端口范围:0~1023 系统端口由IANA负责分配。需要走申请流程,申请手续最为严格。 2) 用户端口(Registered port) 用户端口范围:1024~49151 用户端口由IANA负责分配。需要走申请流程,申...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:09月15日 |
  • 浏览:6952 |
  • 评论已关闭 条评论

参考:Visual Studio 各版本对应关系

Known Name Version Latest KB / Revision Visual Studio 6 6.0 Service Pack 6; 6.0.3790.0; VB6.0-KB290887-X86.exe Visual Studio .NET (2002) 7.0 Service Pack 1; KB837234 Visual Studio 2003 7.1...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:09月14日 |
  • 浏览:2380 |
  • 评论已关闭 条评论

深度理解:关于WM_SETREDRAW消息的理解

在解决一个界面控件闪烁的问题之后,我对WM_SETREDRAW这一消息有了更深的理解。 此消息的作用: 这个消息的主要作用在于:它允许或者禁止窗口重绘。通常我们不必要通过发送消息的方式使用它,而是使用函数SetRedraw,如果指定参数FALSE,则窗口重绘被禁止,否则,窗口重绘被允许。 那么窗口重绘被禁止是什么意思? 窗口的绘制一般在WM_PAINT消息中处理,如果窗口重绘被禁止,则WM_PAI...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:08月30日 |
  • 浏览:4541 |
  • 评论已关闭 条评论

小技巧:解决C4996警告的一种方法

问题: 当我们使用如下的方式调用std::copy函数时: std::copy(pointer1, pointer1 + size, pointer2); 编译期会给出如下的警告: warning C4996: ‘std::_Copy_impl’: Function call with parameters that may be unsafe – this c...
  • 阅读全文 |
  • 分类:小技巧 |
  • 发表于:08月30日 |
  • 浏览:1552 |
  • 评论已关闭 条评论