
基础编程
mynamelj
这个作者很懒,什么都没留下…
展开
-
C++内存泄漏检测代码
我们在进行C++编码的时候,难免会遇到内存泄漏的时候,特别是一些新手朋友们在编码完成后花大量的时间解决BUG,在该文章我用代码剖析跟踪内存泄漏的原理,熟悉C/C++的朋友都知道内存分配和释放都是要成对调用的,如果某处代码只分配内存,而没有释放就会造成内存泄漏的bug。下面帖出我写的内存泄漏跟踪类的代码:MemLeakTrack.h文件#pragma once#ifndef INC_TRACK_ALLOC_H#define INC_TRACK_ALLOC_H#include <.原创 2020-08-27 16:28:04 · 581 阅读 · 0 评论 -
函数指针模板的简单使用
//函数指针模板的定义 template<typename ReturnType, typename... Args> class ProcTemplate { typedef ReturnType(WINAPI * PFN_PROC)(Args...); public: ProcTemplate(LPCTSTR pszModule, LPCSTR pszP...原创 2019-10-22 23:09:15 · 346 阅读 · 0 评论 -
字典树Trie使用数值作为KEY
字典树的数据结构我就不作描述了,网上的Trie算法基本上都是基本字符串作为KEY的,字符串作为KEY每个子节点占用26 * 4个字节,对于数据量不大的情况效果不错,但对于大量数据占用内存空间消耗比较大,而使用数值作为KEY的话每个节点仅点10 * 4个字节,相对于字符串来说浪费的空间得到很大改善了。直接上代码!template <class Type>class CTrie{...原创 2018-11-27 18:00:58 · 351 阅读 · 0 评论 -
OLE时间和CTime时间相互转换
1.OLE时间是用double类型来表示的,整数部分是自1900年至今流逝的天数包含润年计算,而小数部是不足一天流逝的总秒数。2.CTime时间用的是__int64类型来表示的,数值是自1900年至今流逝的总秒数。3.下面用代码来描述一下转换的算法,值得一提的是两个函数都对25569数进行了加减,而这个值是1900-01-01到1970-01-01所流逝的总天数。//OLE时间转CT...原创 2018-12-02 21:39:51 · 2492 阅读 · 0 评论 -
在迁移或者升级项目文件后经常会遇到C1083解决方法
错误描述fatal error C1083: 无法打开预编译头文件:“xxxxx.pch”: No such file or directory这种问题一般是属于项目文件迁移或者配置不正确而造成的,解决办法就是手工配置下项目属性:1.打开项目工程属性设置窗口,配置如下:2.当然这样设置之后可能仍然会出现C1083错误,这是因为将工程下所有文件属性都设置成使用原创 2015-06-11 18:19:48 · 691 阅读 · 0 评论 -
如何编译Windows7、 Vista的大图标(128*128, 256*256)?
Windows7、 Vista的图标Windows7、 Vista的图标包含一个高分辨率的256 × 256像素的图像。 这些图像专门用于Windows7、 Vista和他们使用PNG基于压缩存储。 Explorer的动态重采样所需的分辨率。Windows7、 Vis转载 2011-09-14 13:27:36 · 869 阅读 · 0 评论 -
可变参数的函数应用
void log_printf(LPCTSTR pszFormat, ...) { TCHAR szBuffer[512]={0}; //读取参数 va_list args; va_start(args,pszFo原创 2011-09-13 19:45:38 · 563 阅读 · 0 评论 -
格式化带千分号的字符串
为了方便读数字一般都会在数字中加千分号来快速识别数字,列如3,0000,0000这样一眼就来看出是3亿。下面写出一个函数来快速格式化一个带千分号的字符串。经过测试速度相当快,不使用任何库函数支持。 CHAR* FormatNumberString(LONGLONG lNumber, CHAR *pBuffer, int nLenght){ if (pBuffer==NULL || nLenght0) { szNu原创 2010-10-26 21:48:00 · 2045 阅读 · 1 评论 -
子类重载父中的函数
在很多情况下可能需要继承一个类并且重载父类中的函数某些函数,但是重载父类中的函数以后实例化对象后却能调用父类中重载之前的函数,例如以下例子:class CA{public: BOOL LoadImage(LPCTSTR pszFileName); ...};class CB : public CA{public: BOOL LoadIma原创 2009-11-08 09:53:00 · 1158 阅读 · 0 评论 -
【ZT】哈希的原理和代价
【ZT】哈希的原理和代价 哈希表和哈希函数是大学数据结构中的课程,实际开发中我们经常用到Hashtable这种结构,当遇到键-值对存储,采用Hashtable比ArrayList查找的性能高。为什么呢?我们在享受高性能的同时,需要付出什么代价,那么使用Hashtable是否就是一桩无本万利的买卖呢?就此疑问,做以下分析,希望能抛砖引玉。1)hash它为什么对于键-值查找性能高 学过数据结构转载 2009-06-01 19:20:00 · 945 阅读 · 1 评论 -
在对话框中使用加速键
For the purposes of this article, we add accelerator key functionality to the AboutBox dialog box of an MFC MDI application: 1.Create a new MFC MDI application named Test.2.Add a butto原创 2008-12-13 23:08:00 · 973 阅读 · 0 评论 -
内存泄漏定位(依赖MFC)
今天调试程序,发现有内存泄漏但是没有提示具体是哪一行,搞得我很头疼。结果在网上搜索了一些资料,经自己实践后整理如下: 第一种:通过"OutPut窗口"定位引发内存泄漏的代码(下面转,我写的没原文好,也懒得写)。 我们知道,MFC程序如果检测到存在内存泄漏,退出程序的时候会在调试窗口提醒内存泄漏。例如:class CMyApp : public CWinApp转载 2009-01-08 19:52:00 · 5137 阅读 · 2 评论 -
屏蔽对话框回车和ESC键,防止对话框意外关闭。
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)...{ if(WM_KEYFIRST pMsg->message && pMsg->message WM_KEYLAST) ...{ if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) return TRUE;原创 2006-11-17 19:27:00 · 1237 阅读 · 0 评论