递归调用过多导致的栈溢出问题说明

今天在排查一个导致程序奔溃的bug,经调试发现其中的原因:代码中使用到CTreeCtrl树控件,控件中有上千个节点,代码中为实现相关的应用,需要递归遍历整个树控件,从而导致栈溢出的问题。         那么过多的递归调用为什么会引起栈溢出呢?事实上,函数调用的参数是通过栈空间来传递的,在调用过...

2012-05-29 22:55:22

阅读数 9145

评论数 0

窗口截图(可指定HWND窗口句柄)

BOOL SaveHwndToBmpFile(HWND hWnd, LPCTSTR lpszPath) { HWND hDesktop = ::GetDesktopWindow(); ASSERT(hDesktop); if(...

2012-05-22 22:19:34

阅读数 921

评论数 0

一个简单的UDP广播例子(含C/S)

一个简单的UDP广播通讯的例子程序,含有服务端和客户端的代码。 // 服务端 // BoardCast_Server.cpp : Defines the entry point for the console application. // ...

2012-05-22 22:14:27

阅读数 1258

评论数 0

屏幕截图(带光标)

// 屏幕截图程序,可运行PC,WinCE,Windows Mobile平台上 void SaveScreenToFile(LPCTSTR szFileName) { HDC hScrDC = ::GetDC(NULL); ...

2012-05-22 22:09:49

阅读数 755

评论数 0

CPropertySheet属性页对话框中各个按钮的ID值

//向导模式 ID_WIZNEXT // Next ID_WIZBACK // Back ID_WIZFINISH // Finsh IDCANCEL // ...

2012-05-22 22:06:56

阅读数 779

评论数 2

windbg检测句柄泄露(可定位到具体代码)

1、用c++写一个句柄泄露的样例程序: #include "stdafx.h" #include voidfun1(void); voidfun2(void); voidfun3(void); voidfun4(void); intmain(inta...

2012-05-22 22:05:01

阅读数 932

评论数 0

VC动态改变控件的TAB顺序

BOOL CLogDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg-> message == WM_KEYDOWN) { if( pMsg-> wParam ==...

2012-05-22 22:03:06

阅读数 820

评论数 0

关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息

对于模态非模态对话框默认是不响应菜单的UPDATE_COMMAND_UI消息的,需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI。 void CXXXDlg::OnInitMenuPopup(CMenu* pPopupMenu, UI...

2012-05-22 21:58:20

阅读数 582

评论数 0

深度解析VC中的消息

摘要: Windows编程和Dos编程,一个很大的区别就是,windows编程是事件驱动,消息传递的。所以,要做好windows编程,必须对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的论述,由于小生初学VC,里面可能有一些错误的地方,还往各位大虾批评、指正。  注意:有些...

2012-05-21 09:24:49

阅读数 577

评论数 0

Windows消息大全之消息ID

static const char * const MessageTypeNames[WM_USER + 1] = {     "WM_NULL",//0x0000     "WM_CREATE",//0x0001     "WM_DEST...

2012-05-21 09:06:27

阅读数 1650

评论数 0

Windows消息大全之消息说明

1、消息范围说明 0 ~ WM_USER – 1 系统消息 WM_USER ~ 0x7FFF 自定义窗口类整数消息 WM_APP ~ 0xBFFF 应用程序自定义消息 0xC000 ~ 0xFFFF 应用程序字符串消息 > 0xFFFF 为以后系统应用保留 2、...

2012-05-21 09:03:59

阅读数 480

评论数 0

PASCAL、_stdcall、_cdecl等调用方式说明

调用一个函数时,参数的传递是由堆栈来完成的,PASCAL的惯例是参数从左向右压入堆栈,堆占的指针的还原可由被掉用的程序本身来负责,这样还原堆栈指针的代码在被调用的函数中,此代码(还原指针)只有一份。而C的惯例是参数入栈是从右向左,堆占的指针的还原可由调用的程序本身来负责,每调用一次,就生成一份堆占...

2012-05-20 18:25:12

阅读数 993

评论数 0

GDI资源泄漏导致的程序异常的解析

之前听说过,在编写代码时要注意及时释放申请来的GDI资源,以免产生GDI资源泄漏,导致程序异常。但是没有实际的体会,在今天晚上的小组讨论会上,大家谈到了这类话题,才真实的体会到GDI资源泄漏带来的种种不利影响,比如会出现LoadBitmap失败直接导致奔溃,程序绘图出现异常(主要是窗口自绘出现异常...

2012-05-16 22:35:57

阅读数 1684

评论数 2

解决win7下文件拖拽无效的问题

近日测试那边提出这样的bug:在测试文件传输模块时,发现程序在win7下面出现文件拖放失效的问题。刚看到这样的问题,估计是与win7的安全级别有关系,但具体该如何处理却没有多少头绪。于是,带着相关的疑问到网上查阅了一下,找到了相关的处理办法,在此给出来与大家分享一下。        具体情况还视当...

2012-05-15 22:42:51

阅读数 2483

评论数 1

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