自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 Stream 类图纠错

此图来自>一书:

2011-11-25 16:26:20 688

原创 c#.net向windows添加计划任务(task schduler)项

Win7的task schduler功能比windows XP要强,添加的任务类别也比windows XP的多。在Win7里添加的计划任务都以XML格式的文件保存在C:\Windows\System32\Tasks目录下。在Win7里添加一个任务,并为该任务添加一个RunOnce类型的Trigger(TimeTrigger),可以设置该Trigger的repeat的duration为indefin

2011-11-03 15:47:59 10502

原创 c#.net中无法向sqlite直接存入ulong类型的值。

必须将ulong类型的值强制转化为long之后存入才OK,也就是要首先进行按位转换。因为sqlite没有提供读取ulong类型值的方法,如果存入了一个ulong类型的值大小超过了long值的大小,读出的会是截断的long值,大小是-9223372036854775808,该值是long所能表示的最大负数。

2011-10-25 17:29:31 1299

原创 log4net简介

log4net挺好用,通过配置输出等级可以将崩溃的信息写入Windows的Event log,将其他调试和追踪的信息输出到其他地方。商用软件中如果要使用log4net需要在软件的license中包含Apache Software License 2.0,在About窗口中加入log4net的copyright即可。参考链接:http://stackoverflow.com/question

2011-10-25 17:14:58 619

转载 经典编程:DLL地狱及其解决方案 文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/vc/vc_js/20100630/26

原作者:Ivan S Zapreev    译者:陆其明    概要    本文将要介绍DLL的向后兼容性问题,也就是著名的“DLL Hell”问题。首先我会列出自己的研究结果,其中包括其它一些研究者的成果。在本文的最后,我还将给出“DLL Hell”问题

2011-09-06 13:11:24 1264

原创 NTFS中Data Run换算成LCN算法

文章中用实现代码为C#。对于该算法,我参照相关原理自己写了一个,在根目录下复制了大量文件进行测试,发现有问题,之后,参考一下两个链接:http://blog.csdn.net/redchairman/article/details/5694027http://www.

2011-08-18 17:59:46 3683

原创 备份outlook的pst文件

备份outlook的pst文件的时候,遇到了一些问题,总结了一下。 要得outlook的pst文件的路径,先使用Outlook自带的.net COM组件,但最终发现该组件对于Outlook 2007以上的版本才提供了获得pst路径的方法,但程序要支持Outlook2003

2011-08-04 14:12:59 3055

原创 System.DllNotFoundException 问题分析与解决

用c#调用c++的一个dll的时候出现System.DllNotFoundException 异常,但某些机子有会有这个异常,有些机子没有这个异常,调查发现该dll是个mfc的dll,编译时需要静态链接mfc库。参考链接:http://blog.csdn.net/cedricpo

2011-07-29 09:44:59 10995

原创 使用EventWaitHandleSecurity进行程序间同步时,在非英语机器上程序hang住了。

两个程序进行同步操作,一个是服务(Service),一个是进程(Process),服务的运行时的用户名是System,进程运行时的用户名是启动该进程的用户。两者需要使用EventWaitHandleSecurity对象进行同步。由于是不同用户,因此实现的时候,先是用下面方法:

2011-07-26 15:31:37 978

原创 使用批处理脚本将log分类

有两个待测试的程序A和B,由于测试结果不确定,A和B都要输出log文件,分别为A.log和B.log,而且A和B要分别运行多次,然后观察log文件以分析得出正确结论。因此,写了如下的批处理脚本进行自动运行。 echo offmkdir goodmkdir badset i=0:l

2011-07-26 14:57:29 1055

原创 c#动态加载com组件

在写一个获得outlook pst文件路径的时候,程序需要动态从GAC中加载Microsoft.Office.Interop.Outlook.dll,加载没问题,但无法创建com给出接口的实例,因为C#不支持创建接口的实例。而每个接口都有一个CoClass,创建其CoClass的

2011-07-26 14:42:48 5485

原创 vc编译sqlite数据库

领导说下一个阶段有可能要我做一个数据库的测试小程序,问我懂这方面不?我说以前接触过,现在拾一拾应该没问题。听说有一个嵌入式的数据库,叫sqlite,不需要安装数据库服务器,可以作为程序的一个dll,使用时会将数据保存成数据库文件。最重要的是,这是个开源的数据库!到谷歌上搜sqlite,第一项便是官方网站:www.sqlite.org。进去后,先了解一下大体,感觉还不错。进入Document页面,大标题SQLite Programming Interfaces下有一些小标题,进入第一个标题SQLite In 

2011-05-08 17:50:00 4283 2

原创 由数组的下表得到长度

<br />已知数组下表i和j(i < = j),问i到j的长度是多少(包括i和j)?<br />计算方法如下:<br />len = j - i + 1<br /> <br />例子:strFileName是一个包含后缀名,不包含路径的文件名(如:river.jpg),下面的代码能够得到它的后缀名:<br /> <br /> string strExtension;<br /> string::size_type posDot = strFileName.find_last_of('.');<br /> 

2011-01-12 13:58:00 668

原创 A tip for Windows 7 touch development

Windows 7 running on Touch PC works like this:Once the vertical scroll bar is enabled on a window and comes out to work, pressing finger inside the window dose not gernerate WM_LBUTTONDOWN message at once. That is different from using the mouse device(whil

2011-01-05 11:17:00 631

原创 通过手机键盘将字符串转换为数字的小程序

<br />#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>#include <string>int _tmain(int argc, _TCHAR* argv[]){ bool br = true; vector<string> vecPhotoNumber; vecPhotoNumber.push_back("abc"); vecPhotoNumber.pus

2011-01-04 18:28:00 1084

原创 实现透明位图时对单色位图与颜色位图转换的思考

在资源中创建如下位图,资源ID是:IDB_BITMAP1。加载位图IDB_BITMAP1:CBitmap bmpSrc;CDC dcMemSrc;bmpSrc.LoadBitmap(IDB_BITMAP2);dcMemSrc.CreateCompatibleDC(pDC);CBitmap *pBmpOldSrc = dcMemSrc.SelectObject(&bmpSrc); 得到该位图的BITMAP结构,后面会通过该结构使用位图的宽和高。BITMAP bmp;bmpSrc.GetBi

2010-11-22 18:42:00 1914

原创 用了双缓冲绘图还闪烁

最近项目都基本完事儿,闲来做了个俄罗斯方块程序。但有一个小问题:一行(row)满了之后,消除该行,并使其上面的所有的行下移一行,这时候就需要重绘整个游戏区域(panel),调用Invalidate(),发现有闪烁。于是,改用双缓冲技术。发现还是有闪烁。发现将Invalidate()改成Invalidate(FALSE)之后就不闪烁了。

2010-11-12 18:13:00 945

原创 vector的iterator的错误使用

原文如下:(摘自>)7.2.6 The Increment and Decrement Problem of Vector IteratorsThe use of the increment and decrement operators of iterators includes a strange problem. In general, you can increment and decrement temporary iterators. However, for vectors and s

2010-11-04 16:11:00 8325

原创 MsgWaitForMultipleObjects + TranslateMessage 调用时要小心。

出错的程序片段如下:void CDlgThreadTest::OnBtnTest() { DWORD dRet = -2; HANDLE hArray[2]; hArray[0] = m_pThread1->m_hThread; hArray[1] = m_pThread2->m_hThread; MSG msg; BOOL bWaitAll = FALSE; int nExitThreadCount = 0; int nWaitCount = sizeof(hAr

2010-11-03 21:22:00 927

原创 MFC中关于各种状态的分析 : module state, thread state, process state.

参考:http://dev.firnow.com/course/3_program/c++/cppjs/2008224/100898.html

2010-11-01 18:04:00 918

原创 从字符串中删除相同的相邻字符

题目:从字符串中删除相同的相邻字符。初步实现:void remove_duplicate_adjacent(wstring &s){ wstring::iterator it1, it2; it1 = it2 = s.begin(); it2++; for (;it2 != s.end();) { if (*it1 == *it2) { s.erase(it2); } else { it1++; it2++; } }

2010-11-01 17:39:00 1184

原创 资源文件里加入dialogbox的控件收不到wm_create消息

对于在资源文件中加入的控件, 只能在对话框的WM_INITDIALOG中通过HWND hCtrl = NULL;GetDlgItem(IDC_BUTTON1, &hCtrl);btn1.SubclassWindow(hCtrl);子类化控件。这时候,控件是收不到wm_create消息的。默认的CDialog::OnInitDialog()会调用DoDataExchange()来实现对其上面的控件进行子类化。如果想要控件收到wm_create消息,就不能再资源里定义控件,而是要在wm_initdialog消息

2010-11-01 14:19:00 1136

原创 在鼠标消息中模仿Windows Explore文件和文件夹的选择

维护旧代码中,有一个定制控件跟list contrl很类似,但是bug不少,真不如改用list control,哎。发现对控件内item的选择操作根本不对,自己又模仿Windows Explore中对文件和文件夹的选择,改了一下。在这里记下,以防以后再用到类似的跟list control一样的“轮子”:void CMyWindow::OnLButtonDown(UINT nFlags, CPoint point) { int nShiftStart = -1; int iSelIndex =

2010-10-27 15:13:00 673

原创 使用COleDataSource.DoDropDrag进行往外Drag时要注意的一点

这是我做一个从窗口向windows explore拖放文件时碰到的。通过调用COleDataSource.DoDropDrag来拖动文件对应的图标把文件move或copy到windows explore,但明明产生的是DROPEFFECT_MOVE效果(也就是不带加号的小方块),但该函数最后的返回值却是DROPEFFECT_NONE,这跟往其他不接受拖拽的地方返回的是一样的结果啊。程序中,如果是DROPEFFECT_MOVE,我要删除对应的图标,如果是DROPEFFECT_NONE,我啥也不做。而现在我必须

2010-10-27 10:39:00 2210

原创 如何修改一个文件的内容。

<br />1. 一次全部读出到内存,在内存中修改后,存回到原来的文件里。<br /> <br /> 

2010-10-22 11:41:00 746

原创 使用fstream创建文件

<br />有网上说,使用fstream file(path.c_str());语句,也就等于fstream file(path.c_str(), ios::in | ios::out);语句可以创建文件。但我发现不可以,如果想创建文件,必须向下面这样才行:<br /> <br />fstream out_file;out_file.open(path.c_str(), ios::out);// 在这里使用 ios::out | ios::in 也不能创建文件//执行到此,如果文件不存在,则创建

2010-10-22 10:41:00 9670 3

原创 文件结束符eof的正确使用

问题:来自:http://topic.csdn.net/u/20100103/00/99f1111e-aebc-496d-bcb2-889bbe82f091.html如下:#include #includeusing namespace std;int main() {ofstream ofs("a.txt");int n = 10;while (--n) ofs>x; ++z; cout

2010-10-21 15:59:00 5449

原创 const关键字在类的成员函数上的应用(2)

<br />const修饰的引用作为函数的返回值的一个好处如下:<br />class Error{public:const string & Message() { return _message; }void Message(const string &value) { _message = value; }private:string _message;}void display(const string &info){ cout << info <<

2010-10-20 18:24:00 554

原创 const关键字在类的成员函数上的应用(1)

<br /> <br />先看下面类的定义 (编译通过):<br />class Hand{public: Hand() { }private: vector<wstring> _fingers; wstring _color;public: const vector<wstring> & fingers() const { return _fingers; } const wstring & color() const { return _color; }

2010-10-20 18:20:00 656

原创 使用批处理简化自己的工作

删除项目目录中没用的文件和文件夹,并保存成要提交到svn的项目目录,保存到指定的目录(svn_dir)下。使用批处理文件ToSVN.bat如下:@echo offRD /S/Q %svn_dest%::Copy all files from working directory to directory for submitting to SVN server.robocopy %1 %2/%1 /E::Delete unnecessary files.DEL /F/S/Q

2010-09-30 18:05:00 543

原创 在CScrollView中用CRectTracker。

画了的rect有可能被其他东西覆盖而使其显得不完整,可以在OnDraw中调用下m_tracker.Draw(pDC),以使其覆盖在所有图画之上。

2010-09-29 18:11:00 519

原创 如何允许在程序运行的时候删除用CFileDialog打开的dialog中创建的文件夹。

SQA发现的问题:在保存文件的时候,在打开的对话框(程序中用CFileDialog打开,flag为OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY )中创建了一个新的文件夹,然后将文件存到该文件夹中。保存完毕之后,在程序没有退出的情况下去删除该文件夹,发现里面的文件被删除了,可是系统不允许删除文件夹。解决办法:将flag的改为:OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_NOCHANGEDIR。注意:由于文件夹被删除了,所以文件保存的

2010-09-29 15:50:00 1098

转载 理解 typename关键字

<br />本文来自:http://dev.yesky.com/13/2221013.shtml<br /> <br />C++箴言:理解typename的两个含义 2005-12-05 09:14作者:fatalerror99出处:BLOG责任编辑:方舟问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? <br /><br />template<class T> class Widget; // uses "class"

2010-09-07 16:45:00 671

转载 Trie 树

Trie,又称单词查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie 取自 Retrieve 中间四个字母。下面是来自http://zh.wikipedia.org/zh-cn/Trie的一个例子:#include #include #include #define TREE_WIDTH 256 #define WORD

2010-09-07 16:43:00 659

转载 有限状态机的两种写法

看到一篇不错的文章:http://www.uml.org.cn/UMLApplication/200811252.asp,原文如下:状态机的两种写法 2008-11-25 来源:网络 有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软 件上称为FMM--有限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,在每个状态 上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同时,因为有限状 态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能进行有限

2010-09-06 14:25:00 830

原创 Windows下如何安全结束线程

假设有下面的线程函数:ThreandFunc{ ... PostMessage(hwnd, WM_ThreadEnd, 0, 0); return;} 线程结束的时候要通知某个窗口,窗口处理函数如下:OnThreadEnd(){ ... // Update UI. ...} 如果在主线程的某个事件处理函数里结束线程后还需要更新界面,如下:OnBtnClick(){ ... EndThread();

2010-09-03 18:54:00 1364

转载 boost 编译 unicode warnning.

装载:编译VC++程序的时候出现如下提示警告:warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss因为只是一个warning,不影响正常编译,所以并没有引起大家多大的关注。我一开始的时候也是如此。但是后来出现的次数多了,发现这个警告和在程序Debug的

2010-08-30 18:26:00 1725

原创 看代码

看好代码,是一种享受,看烂代码,是一种折磨。跟做其他事情差不多,比如吃饭,吃美食是一种享受,吃“烂食”肯定是一种折磨。不同的是,我们有时候不得不看烂代码,而且不会给我们的的身体健康。但如果你心理素质差,就会影响你的心理健康。就像不好的身体又吃了坏食儿,自然承受不了了。

2010-08-30 17:23:00 455

原创 该不该用 PretranslateMessage

文章:http://kb.cnblogs.com/a/1548140/可见,PretranslateMessage只能Walk一遍本模块的所有HWND.

2010-08-27 17:58:00 456

转载 C预定义

<br />C标准中指定了一些预定义的宏<br />                 __DATE__<br />                  进行预处理的日期(“mm dd yyyy”形式的字符串文字)<br />                  __TIME__<br />                  源文件编译时间,格式微“hh:mm:ss”<br />                  __FILE__<br />                  代表当前源代码文件名的字符串文字<b

2010-08-18 14:28:00 1070

如何在vs2005,vs2010下进行局域网内的远程调试c++和c#项目

本文档讲述了如何在vs下进行局域网内的远程调试。

2011-08-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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