- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 修改文件目录的图标
经常可以看到部分软件会把自己的安装目录改为自定义的图标。 下面看一下解决方法, 只要在目录下 放一个desktop.ini文件然后 修改为:[.ShellClassInfo]IconFile=setup.icoIconIndex=0另外设置一下文件夹的属性SetFileAttributes(strTemp,FILE_ATTRIBUTE_READONLY);
2013-04-02 15:00:16
629
转载 Debug中heapchk.c文件HeapValidate问题 .
我们在使用VC++进行ATL COM或者MFC开发的时候,如果不注意堆越界的问题,就会遇到_CrtCheckMemory()对Debug堆异常。比如我遇到的问题: 使用MFC的CFileFind类,写了个递归方法,遍历文件夹查找文件。这个方法前面用起来完全正常,没有做过修改,后来出现莫名其名的Debug Heap异常,跟踪到了heapchk.c中的代码,应该是Debug模式下堆内存出错
2012-07-13 18:11:08
3535
原创 防止handle忘记关闭,或者被关闭多次,以及防止内存忘记释放,或者释放多次
// HandleTest2.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;#include "SmartHandle.h"#include "SmartPtr.h
2012-07-13 15:00:50
4286
转载 SetDllDirectory("")作用
看到代码中第一行一般都是SetDllDirectory(""), 一直不明白到底是啥意思: 原来是为了防DLL挟持: http://www.cmsmbw.com/yejie/17887.html
2012-07-13 14:50:13
10211
原创 VC修改CStdioFile类, 兼容一行一行读写Unicode的和非Unicode的log
有些人写Unicode的log文件时, 不知道在文件前加# define nUNICODE_BOM 0xFEFF 标志位。 当设置在Unicode环境下的VC代码中,使用MFC的CStdioFile类是无法正确调用ReadString()函数获取. 所有需要重写一个CStdioFileEx类. FileEx.h文件:#define nUNICODE_BOM 0xFE
2012-07-13 14:46:26
2843
1
转载 计算CPU的方法
//.h#ifndef _CPUUSAGE_H #define _CPUUSAGE_H #include #include #include // for using bstr_t class #include #include "stdafx.h" #pragma pack(push,8) #pragma pack(pop)
2012-06-07 18:40:40
1383
转载 利用VS2005进行dump文件调试
http://blogt.chinaunix.net/space.php?uid=21712186&do=blog&id=1818407
2012-03-02 17:44:35
524
转载 提高进程的使用权限代码
void Adjust(){ TOKEN_PRIVILEGES tkp; LUID luid; HANDLE hProcessToken = NULL; OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&hProcessToken); LookupPrivilegeValue(NULL
2012-01-31 11:38:27
358
转载 vc获取系统服务信息
对系统服务的管理几乎是木马必不可少的功能了,比如神气儿,上兴远程控制等要是能我们给自己的木马加上这个功能,看着也不赖。我们实现的效果如图3-4所示图3 图4 好啦,现在开始干活 取得配置权限 在对服务进行管理设置前,需要以相应的权限打开服务,可通过下面两个API实现 SC_HANDLE OpenSCManager( LPCTSTR lp
2011-12-02 10:22:50
709
转载 替换系统弹出的菜单
很多时候,开发的应用程序需要替换系统弹出的菜单,显示自定义的菜单。其实当用户在任务栏应用程序图标上点击右键时,系统会发送一个消息0x0313,Microsoft的开发文档里没有说明这个消息。你可以在你的应用程序中处理这个消息,然后显示自己的菜单。如何在代码中来实现呢?
2011-10-09 17:01:06
607
转载 获得一定范围内不重复的随机数
下面的代码是 获得一定范围内不重复的随机数.首先调用srand函数至于随机的因子.然后调用rand()函数对范围取模. 得到的模跟以前的数做对比,如果没有相同的就插入到数组中. #include #include #include void main() { int iMax = 10000; int x; int a[10000];//声
2011-06-09 14:20:00
860
转载 在VC++中混用C++异常和结构化异常
在初学VC的时候,总以为try()catch(...)可以抓到所有的异常. 在开发之前开发的一个服务器程序中,才发现服务器经常莫名其妙的宕机了.一直觉得很诡异. 直到后来看了很多资料才明白结构化异常跟C++异常是两套东西,不统一。有些异常try.catch不一定能不抓到. 要将两种异常共同使用.下面的代码可以达到目的. 使用下面异常类,可以使程序更稳定.(注意:编译选项里面要记得打开 结
2011-06-09 14:15:00
2351
原创 可以显示目录的树代码
<br />//调用代码:<br /> <br />m_hRoot = m_TreeCtrl.InsertItem(L"我的电脑");<br /> InsertLogicalDrives(m_hRoot);<br /> InsertDriveDir(m_hRoot);<br /> m_TreeCtrl.Expand(m_hRoot,TVE_EXPAND);<br /> <br /><br />/*********************************************************
2011-05-26 10:55:00
553
原创 VC++中选择文件夹的代码
<br />//下面是回调函数,以及函数的处理int CALLBACK _SHBrowseForFolderCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData){ static HWND hWndEdit = NULL; CString strDir; switch (uMsg) { case BFFM_INITIALIZED: { ::SendMessage(hwnd, B
2011-05-26 10:42:00
731
原创 解决容易出现内存泄露的方法
在做一些经常需要申请与释放内存的程序中,特别是做图像分析的时候, 经常会忘记释放内存. 由于程序中需要释放的代码位置与申请的代码位置很大可能不再同一个函数或者代码段,这样就容易造成忘记释放的问题.但是如果用一个类来管理内存,在类析构函数来释放内存,可以有以下好处:1. 自动释放内存,解决内存泄露2. 可以解决出现抛出异常时 没有释放内存的问题. C++规定抛出异常, 也需要调用对象的析构函数.比如下面的例子:class CMemByte{public: CMemByte() {
2011-05-03 11:47:00
521
原创 彩色图,然后将其转换成灰色图到黑白图
<br />Gdiplus::Bitmap m_pbmpSrc;#define FANZHI 110BYTE* GetBWDataFromGrayData(BYTE* pGrayData, int nWStride, int nWidth, int nHeight){ BYTE * pBWDat = new BYTE[nWidth*nHeight]; for (int i=0;i<nHeight;i++) { int nSrcRow = i*nWStride; int
2011-04-25 16:25:00
1634
原创 各种像素的图像的数据 结构分析
<br /> 之前一直使用第3方控件来处理图像,所以很少去接触与分析图像数据,以前一直使用dib来做接口,也没有深入的去分析Dib.<br />个人觉得要分析图像数据,首先从DIB开始说起.<br />1.首先讲下Dib, 什么是Dib,window编程里面有章专门讲DIB的内容. DIB是设备无关的位图(DIB),适用于交换的图像文件格式(保存图像等).<br />首先包含一格位图头.<br />typedef struct tagBITMAPINFOHEADER // bmih <br
2011-04-25 16:04:00
1353
原创 gdi+ 保存图像方法
<br />使用GDI+保存图像可以使用以下代码:<br />1.演示保存JPG<br />CLSID clImageClsid;<br /> <br /> EncoderParameters encoderParameters; <br /> encoderParameters.Count = 1; <br /> encoderParameters.Parameter[0].Guid = EncoderQuality; <br /> //参数类型为LONG <br /> encoderParame
2011-04-25 15:37:00
1641
原创 单线程做比较耗CPU的进度条显示
<br /> 当在一个线程中做识别或者比较耗时的运算时,往往UI不能及时的刷新,这样进度条就不能正常工作.<br />可以采用一下方法,每次运算完一次就调用下面:<br />void DoEvents()<br />{<br /> MSG msg;<br /> if (::PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { //′óWindows???¢?óáD?Dè?3????¢<br /> if (msg.message== WM_QUIT)//è
2011-04-01 11:07:00
884
原创 转:C++多线程调试和测试的注意事项
<br />转:<br /> C++多线程调试和测试的注意事项 收藏 <br /> 在上次的帖子 聊了C++多线程的跨平台问题,后来感觉意犹未尽。今天顺便说一下开发C++多线程应用程序时,有关调试和测试的一些注意事项。下面这些注意事项主要是针对C++,不过有些对于其它的语言也适用。<br /> ★关于设置断点和单步执行 <br /> 很多同学非常依赖于调试器的断点功能和单步功能。这在单线程情况下倒还好(不过有些单线程但涉及GUI的程序,也会有点麻烦)。至于多线程程序的调试,这两种手段简直就是噩梦的开
2011-03-31 16:17:00
611
原创 绘制控件要让控件透明的方法
<br />有时在自绘控件时,要让控件透明,可以采用下面的方法。<br />原理:得到父窗口的DC,直接把父窗口的DC画到临时的DC中。<br /><br />void CButtonST::PaintBk(CDC* pDC)<br />{<br /> CClientDC clDC(GetParent());<br /> CRect rect;<br /> CRect rect1;<br /> GetClientRect(rect);<br /> GetWindowRect(rect1);<br /> Ge
2011-03-30 16:51:00
633
原创 关于打印图片的一个例子
<br />DOCINFO docInfo;<br /> ZeroMemory(&docInfo, sizeof(docInfo));<br /> docInfo.cbSize = sizeof(docInfo);<br /> docInfo.lpszDocName = "GdiplusPrint";<br /> <br /> // Create a PRINTDLG structure, and initialize the appropriate fields.<br /> PRINTDLG print
2011-03-29 11:22:00
676
原创 COM
<br />com组件中,关于连接器CLink方面的文章可以看<br />http://www.vckbase.com/document/viewdoc/?id=1526
2011-03-28 11:52:00
347
原创 应用STL做的撤销重做封装
<br />该博客的STL文章写的很不错。 <br />里面的撤销重做封装的很好<br /> <br />http://blog.csdn.net/pandaxcl/archive/2008/02/05/2084287.aspx
2011-03-28 10:31:00
395
转载 VC操作Word系列
<br />http://honike.blog.163.com/blog/static/1224457392009917648393/
2011-03-28 10:28:00
458
原创 获取当前运行时的目录
通常为了或者程序运行时目录,我们一般采用GetModuleFileName函数,但是当在DLL或者COM组建里调用该函数,或者的是EXE的目录,不是当前COM组建或者DLL的目录。 可以使用下面的方法或者真正的目录。HMODULE GetCurrentModule() 函数 { #if _MSC_VER // Here 's a trick that will get you the handle of the module // yo
2011-03-28 10:05:00
614
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人