研究
文章平均质量分 52
nullptr__
这个作者很懒,什么都没留下…
展开
-
对C++临时对象的内存位置的研究
首先,这是一个很少有人研究的问题:C++的临时对象是在堆里还是在栈里的。但若不研究清楚内部原理,每次产生临时量时都会纠结于此,网上能找到的资料也都是new在堆里、定义在函数内部就是栈里,或者是临时量通过复制构造函数构造这种废话。。。所以自己研究了一下……首先,运算中的临时对象显然是栈内的,对于参数上的临时对象,我推测是直接push进去的,应该也在栈内,但是返回值上的原创 2015-08-20 14:42:44 · 2009 阅读 · 0 评论 -
浅谈C++容器效率的优化
作者:岳知涵在NOIP中,C++的容器的用途非常广泛,但经常因常数过大而超时。怎样才能提高它们的效率呢?我们知道,容器是存储同一类对象的对象,既然“对象”我们无法改变,那么我们只能从“存储”入手,不难想到,不同容器在实现上的根本区别是它们对应着不同的内存组织方式,内存管理无疑是这种实现的核心,所以优化内存管理是加快容器效率的最好途径之一。一、内存分配器简介怎样才能优化内存管理呢?很简单原创 2013-11-24 15:41:06 · 1840 阅读 · 0 评论 -
一行代码实现呼出热键
一个设置呼出热键的小技巧,超级简单哦例如设置为CTRL+ALT+H:CWnd::SendMessage(WM_SETHOTKEY,(WPARAM)MAKEWORD('H',HOTKEYF_CONTROL|HOTKEYF_ALT),0);原创 2015-09-05 12:29:27 · 534 阅读 · 0 评论 -
读取任意进程内存
用进程快照信息找到进程,打开后读取内存,没什么技术含量。。void CReadMemDlg::OnBtnRead() { UpdateData(); void *nAddr; UINT nLen; sscanf(m_strAddr,"%x",&nAddr); sscanf(m_strLen,"%x",&nLen); HANDLE hSnapshot = Crea原创 2015-09-05 10:51:37 · 3599 阅读 · 0 评论 -
用文件映射来实现进程通信
这方法相对于管道、邮槽等方法而言简单快速。再配合个窗口消息,或者开个线程用Event通知,就比较灵活了。。发送程序: UpdateData(); const LPCSTR strName = "test111"; const DWORD len = m_strSend.GetLength() + 1; CWnd *pWnd = CWnd::FindWindow("#327原创 2015-09-04 13:35:13 · 665 阅读 · 0 评论 -
(转载)保存CBitmap到文件
VC6中没有CImage,只能用下面的方法将CBitmap保存到文件中。void CPCDlg::WriteBmp(CBitmap *PBitmap, char m_FileName[]) { BITMAPINFO *m_pBMI; BYTE *m_pDIBData; BITMAPFILEHEADER bfh转载 2015-08-25 12:15:43 · 883 阅读 · 0 评论 -
(转载)BeginPaint和GetDC有什么区别?
这是个windows编程问题。 第一种情况显示出来的字很正常。 case WM_PAINT: gdc = BeginPaint (hwnd, &ps); TextOut (gdc, 0, 0, s, strlen (s)); EndPaint (hwnd, &ps); break; 第二种情况显示的字不停转载 2015-08-22 18:08:49 · 519 阅读 · 0 评论