自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(29)
  • 收藏
  • 关注

转载 转:堆和栈的区别(转贴,作者为一c++程序员,具体姓名不清楚)

一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—> 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—>全局

2009-03-08 20:20:00 603 1

转载 (转)如何让一个动态链接库文件debug和release编译的时候生成不同的文件名

果然,去掉DEF文件中的LIBRARY是问题的关键!不过用     #ifdef   _DEBUG     #pragma   comment(linker,   "/out:debug/test_d.dll")     #else     #pragma   comment(linker,   "/out:release/test.dll")     #endif     有问题,     LI

2008-11-14 17:27:00 1470

转载 (转)再谈非模态对话框的销毁

非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别 先看一下MSDN的原文:When  you   implement   a   modeless   dialog   box,   always   override  the   OnCancel   member   function   and   call   DestroyWindow  from  

2008-09-27 14:54:00 466

转载 (转)MFC 中的CListCtrl简介

  以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1.CListCtrl 风格      LVS_ICON: 为每个item显示大图标      LVS_SMALLICON: 为每个item显示小图标    

2008-09-18 16:51:00 727

原创 windows多线程程序设计

 v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2

2008-07-23 14:16:00 654

转载 (转)关于MFC42D.DLL

今天把自己写的程序“系统命令工具”给了一个网友,结果他运行出现了错误:没有找到MFC42D.DLL,因此这个应用程序未能启动.重新安装应用程序可能会修复此问题。我为此迷惑不解,去查资料。谜 底是:其实一般在编程序时,都是生成了调试版的程序,就是在那个Debug目录下的可执行文件。运行这调试版的exe文件,都会动态连接 MFC42D.DLL和MSVCRTD.DLL这两个文件,所以你如果将这个文件

2008-06-30 09:40:00 1619

转载 (转)注册表“.REG”文件完全攻略

我们平时对注册表的修改操作大多是通过注册表编辑器Regedit来实现的,然而有一天,你登录了某个网站以后,便发现注册表编辑器已经被禁止使用了,怎么办?最简单也是最方便而且不需要任何工具的办法,那就是使用REG文件来解除注册表编辑器的限制。   何谓REG文件

2008-06-16 11:26:00 945

转载 (转)屏幕录制,远程桌面传输,基于Windows图形驱动的屏幕截图技术

计算机屏幕图像的截取在屏幕的录制、计算机远程控制以及多媒体教学软件中都是关键术,基于Windows操作系统有多种截屏方法,研究的重点集中在如何快速有效的截取DBI(Device-Independent Bitmap)格式的屏幕图形数据。现在商业软件流行的截屏技术主要采取的Api Hook技术,但这种技术一次截屏仍有较大的时间消耗,这样就对运行软件的硬件仍有较多的限制,而且是一种非标准的技术,不为微

2008-06-04 10:45:00 4547 2

转载 (转)高效屏幕录制

屏幕录制有着广泛的用途,主要用于建立演示培训,或者远程屏幕监视和广播。由于屏幕的大小和色深通常很高,而且具有大块背景色、窗口拖动/卷动造成的内容移动和菜单弹出造成的瞬时变化等特性,因此需要在数据采集、压缩和传输/存储上多加考虑。录制之前录制之前,应该选择录制方法,压缩方式和录制范围。有必要尽可能缩小录制的区域以减少数据量。在录制开始之前,可以让用户指定录制的范围,例如全屏幕,指定窗口,

2008-06-04 10:29:00 5011 1

转载 (转)用 Directx 和 GDI 的 两种方法的截屏代码

LPDIRECTDRAW lpDD     = NULL;LPDIRECTDRAWSURFACE lpDDSPrime  = NULL;LPDIRECTDRAWSURFACE lpDDSBack  = NULL;LPDIRECTDRAWSURFACE lpDDSGdi  = NULL;LPDIRECTDRAWSURFACE lpSurf   = NULL;DDSURFACEDESC DDS

2008-06-04 10:26:00 2536

转载 (转)CONTAINING_RECORD macro之研究

CONTAINING_RECORD macro之研究#define CONTAINING_RECORD(address, type, field) ((type *)( / (PCHAR)(address) - / (ULONG_PTR)(&((type *)0)->field))) 这个宏的目的是 当我们知道某一个 C struct 内的某个field 的 address,我们就可以反推回

2008-05-07 15:23:00 674

转载 (转)译:理解 Win32 "OutputDebugString"

坚定的 Win32 开发人员可能对 OutputDebugString() API 函数比较熟悉,它可以使你的程序和调试器进行交谈。它要比创建日志文件容易,而且所有“真正的”调试器都能使用它。应用程序和调试器交谈的机制相当简单,而本文将揭示整件事情是如何工作的。本文首先是由以下事件促使的,我们观察到 OutputDebugString() 在管理员和非管理员用户试图一起工作或游戏时并不总是

2008-05-06 09:28:00 772

转载 用完成端口开发大响应规模的Winsock应用程序

作者:Anthony Jones&Amol Deshpande 翻译:刘西齐 原文出处:http://msdn.microsoft.com/msdnmag/issues/1000/Winsock/ 通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了——创建和连接一个套接字,尝试进行连接,然后收发数据。真 正难的是要写出一

2008-01-31 14:03:00 392

转载 socket编程模型分析(转)

曾经用VC做过一个聊天程序,目的是熟悉socket编程模型。当然也放到了简历上,没想到每次面试都会被问到有哪些网络模型,早就记不清楚了,只能知道个大概。虽然不用面试了,但还是很有必要把它总结一下,学一点东西,就要把它搞清楚。    没有研究过socket发展史,但通过这些网络模型的分析与比较,也大概明白了其发展过程。最先出现的是阻塞模型,这个模型是讲解计算机网络时被作为例子 介绍的,也是最简单

2008-01-31 14:00:00 555

转载 多线程同时写socket是否需要加锁(转)

[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页] yuangong 精灵

2008-01-24 15:29:00 3037 1

转载 用VC++获取系统时间几种方法(转)

 A:1 使用time_t time( time_t * timer )    精确到秒  计算时间差使用double difftime( time_t timer1, time_t timer0 )2 使用clock_t clock() 得到的是CPU时间    精确到1/CLOCKS_PER_SEC秒3 使用DWORD GetTickCount() 得到的是系统运行的时间 精确到毫

2008-01-14 10:15:00 2823

转载 系统托盘图标相关(转)

VC中使程序最小化到//定义托盘图标结构体NOTIFYICONDATA nid; #define WM_ICONNOTIFY  WM_USER + 909 //图标响应消息(lParam)#define ID_TASKBARICON 100           //参数(wParam)//初始化系统托盘图标   void CMainFrame::OnBtnMinimize() {       

2008-01-09 11:23:00 429

转载 解开 Windows 下的临界区中的代码死锁(转)

摘要临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未 能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。 本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的有用信息。它还包含一个便利的实用工具程序,可以显示所有临界区及其当前状态。在 我们许多年的编程实践中,对于 Win32® 临界

2008-01-07 00:05:00 472

转载 看了论坛里关于send时产生WSAEWOULDBLOCK的处理,仍有疑问(转)

搜索了一下论坛里关于send时产生WSAEWOULDBLOCK时的处理办法,得出如下结论: 1.产生这个错误只是说明out buffer已经满了,不代表出错. 2.可以等待FD_WRITE消息,此时将没有发送完成的数据再次发送出去. 但还是有疑问,我的问题如下: 1.我上面的两条结论正确吗? 2.关于在FD_WRITE里把没有发送完的数据发送完,这一点如何做到呢?因为 in

2007-12-25 09:47:00 1431 1

转载 WSAEWOULDBLOCK send 出错(转)

今天有朋友问我关于 Winsock 发送数据出错的问题,错误代码为 WSAEWOULDBLOCK。而刚好以前自己也遇到过这个问题,也研究过一下发生的原因,所以很顺利的帮朋友解决了问题,但由于自己语言表达能力太弱,所以干脆把原因分析写下来:“关于 Winsock Send 无法完成,返回 WSAEWOULDBLOCK 的原因分析和解决方法”,如下:首先,Winsock 异常 10035 WS

2007-12-25 08:40:00 1569 1

原创 遍历文件夹

 void EnumeratePathFolders(LPCTSTR lpPathName){    WIN32_FIND_DATA fd;    CString s = lpPathName;    if (s.Right(1).Compare(_T("//")) != 0)        s = s + _T("//");    HANDLE hFind = FindFirstFile(s +

2007-12-12 14:05:00 352

转载 CToolTipCtrl使用详细解说(转)

ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。一般用法步骤:1、添加CToolTipCtrl成员变量 m_tt。2、在父窗口中调用EnableToolTips(TRUE);3、在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同

2007-12-12 09:06:00 539

转载 控件之CToolTipCtrl(加入仿系统目录树视图)(转)

说明:这些代码是建立在仿系统目录树视图之上的。(在vs2005下编译通过) 一、首先在BrowseSysTreeDlg.h 中加入成员CToolTipCtrl* m_pToolTipCtrl。在资源里,Tree Control把ToolTip的属性设为True;二、然后就是初始化,在BOOL CBrowseSysTreeDlg::OnInitDialog()加入如下代码:     ……

2007-12-12 09:05:00 512

转载 VC6.0下实现系统托盘的气泡提示窗口(转)

首先需要更新一下VC6.0的SDK(否则会出现编译出错),方法如下: 1.把ShellAPI.h文件中的关于任务栏提示的函数和常量替换为下面的内容(重要): //// //// Tray notification definitions ////  

2007-12-12 09:04:00 1686

转载 在VC++6.0中使用气泡提示(转)

首先需要更新一下VC6.0的SDK,方法如下: 把ShellAPI.h文件中的关于任务栏提示的函数和常量替换为下面的内容://// Tray notification definitions////typedef struct _NOTIFYICONDATAA {        DWORD cbSize;        HWND hWnd;        UINT uID;        UI

2007-12-12 09:00:00 763

转载 Windows Socket API 使用经验(转)

我的Windows Socket API 使用经验                                           文章作者:唐纲本文是我在进行MS-Windows、HP-Unix网络编程的实践过程中总结出来的一些经验,仅供大家参考。本文所谈到的Socket函数如果没有特别说明,都是指的Windows Socket API。一、WSAStartup函数    int W

2007-12-10 10:24:00 865

转载 Socket 的 Send Recv 的长度问题(转)

一个包没有固定长度,以太网限制在46-1500字节,1500就是以太网的MTU,超过这个量,TCP会为IP数据报设置偏移量进行分片传输,现在一般可允许应用层设置8k(NTFS系统)的缓冲区,8k的数据由底层分片,而应用层看来只是一次发送。         windows的缓冲区经验值是4k。         Socket本身分为两种,流(TCP)和数据报(UDP),你的问题针对这两种不同使用而结论

2007-12-10 10:20:00 9902

转载 如果你真的想删除东西的话就在类似remove的算法后接上erase(转)

我将从remove的复习开始这个条款,因为remove是STL中最糊涂的算法。误解remove很容易,驱散所有关于remove行为的疑虑——为什么它这么做,它是怎么做的——是很重要的。这是remove的声明:templateForwardIterator remove(ForwardIterator first, ForwardIterator last, const T& valu

2007-12-06 14:42:00 773

转载 如何优雅地关闭一个socket(转)

最近在windows编程时需要考虑到“如何优雅地关闭一个socket”,查阅了一些资料,现将查到的相关资料做个汇编,希望能对后来者有所帮助(比较懒,所以英文资料没有翻译:-)) 1. 关闭Socket时究竟做了什么     关闭socket分为主动关闭(Active closure)和被动关

2007-12-05 23:00:00 611

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除