摘要: 先看一下界面。主界面如 :然后是被清理的桌面项的浏览:接下来是配置不清理项:本软件的主要工作原理是:1)配置不清理项。2)一键清理,被配置的不清理项不会被清理,会留在桌面上,其它文件会被移动到 ./DesktopFiles的目录下。3)快速查看被清理的桌面项,提供搜索功能。很简单。其中要处理的细节,代码贴如下:1.显示桌面时,程序界面不隐藏:View Code 1)在 OnInitInstance ():CDesktopCleanDlg* pdlg = NULL; HWND hwnd = FindWindow (TEXT("Progman"), NULL); hwnd = 阅读全文
posted @ 2012-10-22 23:46 夜雨無聲 阅读(2230) 评论(0) 推荐(0) 编辑
摘要: 这个BUG调了我一整天-。-基本原因是,Debug使用了的new调用Release的delete,我还不确定.BUG的代码可能如下:dll:struct Status {int iStatus;CString str;};void GetStatus (Status* p) { /** do something */; }调用代码如下:Status st;GetStatus (&st);就这个简单的,看似没有错误的代码产生了问题。st中有个CString,它是个类,析构函数会delete 内存块,它因为在内部会存在 +, =等操作,而DLL是Release的,调试程序是 DEBUG的, 阅读全文
posted @ 2012-09-03 15:49 夜雨無聲 阅读(3657) 评论(0) 推荐(0) 编辑
摘要: 最初关注《中国好声音》,是从优酷上看到的视频,先看的第二期,然后去看第一期。不看相貌,只听声音,是这个节目最据特色的地方,其中有李代沫、刘悦等诸多长相不堪之人,这也是最具魅力的地方。于是其后每期必看。但上周五的淘汰赛,使我对它失去了以往期待,因为我发现它已经沦为了一个作秀节目,一个没有了任何特色的节目,甚至没有了价值的节目。这和其它的音乐节目还有什么区别呢?在这一期中,那英说了两字“海选”,真的是海选呢,后期还有预赛、初赛、复赛、决赛吗?一轮一轮地淘汰,直到产生一个冠军吗?如果是这样,中国好声音难道只有一个声音吗?而且这与其它节目太类似、太雷同了,毫无看点。刘欢说了一句话,大意是,“当初我们兴 阅读全文
posted @ 2012-08-25 21:49 夜雨無聲 阅读(2341) 评论(0) 推荐(0) 编辑
摘要: 最近一个项目中,SetFocus无效,极其无奈,最后知道原因。调用SetFocus的不是DLG本身线程,其它线程调用它会失败。解决方法是使用SendMessage。在线程里也不应该使用任何与窗口相关的资源,无论是GetDlgItemText还是SetDlgItemText,有时候会引起莫名其妙的事情来,调用设置窗口东东的函数有可能还会引起死锁。 阅读全文
posted @ 2012-07-24 13:56 夜雨無聲 阅读(1693) 评论(0) 推荐(0) 编辑
摘要: 1.IP转换string[] strIPArray = newIp.Split('.');uint[] iIP = new uint[strIPArray.Length];for (int i = 0; i < strIPArray.Length; ++i){ iIP[i] = uint.Parse(strIPArray[i]);}uint dwIP = (iIP[0] << 24) | (iIP[1] << 16) | (iIP[2] << 8) | iIP[3];2. 时间转换相当于VC++中的 CTime::GetTime () 阅读全文
posted @ 2012-05-02 17:24 夜雨無聲 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1. 下载zlib. 目录好像 是1.2.32. 编译 zlib. 打开 \zlib-1.2.3\projects\visualc6,打开 zlib.dsw, 如果没有VC6,可以用VS2003,VS2005,VS2008等编译器强制转换。3. 示例// zlib_test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "zlib.h"#pragma comment (lib, "zlib1.lib")vo 阅读全文
posted @ 2012-04-19 11:12 夜雨無聲 阅读(3479) 评论(0) 推荐(0) 编辑
摘要: 递归除了会引起无限循环,还有可能引起堆栈溢出。如下面一个计算阶乘的递归函数:unsigned int Fact (unsinged int i){ int iRet = 1; if (i <= 1) return iRet ; iRet = i * Fact (i - 1); return iRet;}考虑一下:Fact (100000000);1M = 1047586则它会申请 4 * 100000000 = 381M 或更多。已经远远超出了线程1M的堆栈大小。所以要使用循环替代递归。 阅读全文
posted @ 2012-03-23 11:42 夜雨無聲 阅读(926) 评论(0) 推荐(0) 编辑
摘要: 1. 字符串1) strcpy, strcat2) sscanf2. 空指针 或 指向非法内存的指针3. memcpy4. 访问无效句柄 阅读全文
posted @ 2012-03-20 23:53 夜雨無聲 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 编辑器加载中...#include <Shellapi.h> // for task icon#pragma comment (lib, "Shell32.lib")#define WM_TRAYICON WM_USER + 1#define ICON_ID 1BOOL TrayIcon (HWND hwnd, HICON hIcon, DWORD dwMsg){ NOTIFYICONDATA nid = {0}; nid.cbSize = sizeof (NOTIFYICONDATA); nid.hWnd = hwnd; nid.u... 阅读全文
posted @ 2012-02-20 14:17 夜雨無聲 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 最近RELEASE老出问题。原因有可能是,assert 内部最好不要使用函数。理由是:assert (f);中的f,如果它是个函数,那么在 Release 中,它将不会被执行。您最好这样用:bool fRet = f (); // 注:多声明一个变量,并不会产生什么效率上的影响,因为函数本身就是按值返回的,它必定已经产生了一个bool类型的返回值。assert (fRet);这样用在RELEASE用可能出现问题。 阅读全文
posted @ 2012-02-20 13:30 夜雨無聲 阅读(126) 评论(0) 推荐(0) 编辑