- 博客(146)
- 资源 (26)
- 收藏
- 关注
原创 char 与 wchar_t的转换,欢迎更正
第一种,使用转换函数:char* ToChar( wchar_t* buffer ){int len = wcslen(buffer);char* p = NULL;int need_size = ::WideCharToMultiByte( CP_ACP, 0, b
2011-07-11 09:18:45
912
原创 OnPaint里的故事
这是典型的OnPaint的处理void CMyDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中
2011-06-23 21:42:00
2189
原创 oracle 9i 新建数据库,新建用户
新建数据库可以使用向导 Database configuration assistant, 不知道要创建什么样的数据库就选择general purpose,其它选项默认就可以了,最后会要求设置SYS,SYSTEM的密码,密码请记好。 新建用户,使用SYSTEM用户登录SQLplus worksheet,登录后输入命令 1 创建用户create user userName identified b
2011-06-16 00:05:00
1839
原创 utf-8 转 mbsc
最近使用tinyxml 做些配置文件操作,碰到中文显示为乱码的问题,本人使用VC6,网上查了资料,默认使用的是MBSC,所以本身使用汉字是没有问题,但我的xml文件是保存为utf-8编码,下面代码的工作就是 utf-8转unicode,然后unicode转MBSC,前面的代码是别人写的,我加了两个函数UTF8ToUnicode_all和GetMBSC,因为我使用MFC环境,直接能一步转成CString当然最好了。顺便贴上一点资料,有助于理解,关于utf-8的:UTF-8是一种变长字节编码方式。对于某一个字符
2011-05-29 17:49:00
1051
转载 关于TransparentBlt 透明显示问题
包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。一、TransparentBlt 函数的使用TransparentBlt 函数在Windows98/Windows2000以上版本运行,系统中需要包含 Msimg32.dll,使用时可以链接 Msimg32.lib。Windo
2011-05-08 10:46:00
3818
原创 ON_COMMAND ON_MESSAGE ON_NOTIFY区别与联系
<br />此文章来自:<br />http://www.cnblogs.com/kangwang1988/archive/2010/09/09/1822401.html<br />ON_COMMAND是菜单和工具栏项处理消息的宏<br />ON_MESSAGE是处理自定义消息的宏<br />ON_NOTIFY 是控件向其父窗口发送消息处理的宏 <br />对这几个消息的理解要先了解一下Window消息的背景。<br />在Windows3.1里,控件会将mouse, keybord等等的消息通知它的父窗口
2011-05-08 10:40:00
1677
转载 ON_COMMAND ON_MESSAGE ON_NOTIFY
此文章来自:<br />http://www.cnblogs.com/kangwang1988/archive/2010/09/09/1822401.html<br /> ON_COMMAND ON_MESSAGE ON_NOTIFY区别与联系<br />ON_COMMAND是菜单和工具栏项处理消息的宏<br />ON_MESSAGE是处理自定义消息的宏<br />ON_NOTIFY 是控件向其父窗口发送消息处理的宏<br /> <br />对这几个消息的理解要先了解一下Window消息的背景。<br />
2011-05-07 15:42:00
759
转载 __stdcall与__cdecl
<br />(1) _stdcall调用<br />_stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。<br />WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题:<br /> #define WINAPI _stdcall<br /> 按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如_functionname@number。<br />(2) _cdecl调用<br /
2011-04-25 11:15:00
717
转载 三星s3650c 下载文件时 无现存内容
<br />我是水版的,自己设置上网参数后想下载QQ,然后下载进度一开始后立刻出现“无现存内容”,下ucweb浏览器也一样,今天突然发现自己的上网参数有问题,请检查一下你是这样设置的么:<br /> <br /><br /> <br />上网设置:功能――-浏览器――-设定――-浏览器设定―――― 选择创建――-设定名称:中国移动wap――-接入名称:cmwap――-验证类型:正常――-用户ID:wap――-密码:wap――-协议:选择 HTTP――-主页网址:http://wap.monternet.co
2011-04-17 09:35:00
1162
原创 mysqldump 命令行导出表数据
<br />网上有很多讲解,大多数是没有问题的,<br />一个例子:<br />mysqldump -u root -p stock price_gap_data >c:/abc.sql<br />意思是从stock这个数据库中导出price_gap_data到 abc.sql这个文件里。很简单吧,但我想提醒的是,这个命令应该在运行->cmd 之后的命令行中来执行(而不是在mysql的客户端中执行。反正我试过是不行的),而且千万不要画蛇添足加个分号,不然你会得到:mysqldump : Couldn't
2011-04-02 20:05:00
1833
原创 mysql server has gone away 错误
网上对这个错误的解决方案有很多贴子,有网就是好啊。我就这当是补充吧。网上的解决办法: 在my.ini文件中添加或者修改以下两个变量: //wait_timeout=2880000interactive_timeout = 2880000 max_
2011-04-02 19:59:00
741
原创 local function definitions are illegal
<br />如何你遇到这个错误,检查指向的函数并没有发现什么错误的话,请检查一下上一个函数定义。我产生这个错误的原因只是不小心把上一个函数最后的括号弄掉了。看了半天也没看出来,只能怪自己太粗心了。编辑是个需要耐心和细心的工作,一定要认真对待。这么个问题,实在不值得写一篇文章来分析。只 是想提醒自己以后写代码时要仔细,认真写好每一个函数,每一句代码。<br /> <br />另外,工作上这两天解决一个bug,值得我深思。代码是差不我一个月前写的。当时并没有发现什么问题,这两个星期要发布新版本,测试人员进行全面
2011-04-02 19:25:00
3069
转载 window权限 及c++实现 【网摘】
http://www.lihuasoft.net/article/show.php?id=755http://www.360doc.com/content/07/0404/15/21275_430071.shtml以程序的方式操纵NTFS的文件权限 Windows NT/2K/XP版本的操作系统都支持NTFS格式的文件系统,这是一个有安全性质的文件系统,你可以通过Windows的资源管理器来设置对每个目录和文件的用户访问权限。这里我就不对NTFS的安全性进行讲述了,我默认你对NTFS的文件目录的
2011-03-17 15:39:00
6362
1
原创 NSIS用法注释
<br />;this is a test comment<br />#this is a test comment too,<br />/*this is a test comment too*/<br />;MessageBox MB_OK "hi test!"<br />;MessageBox MB_OK "$/"A quote from a wise man$/" said the wise man"<br /><br />;Var MYVAR<br />;StrCpy $
2011-03-08 16:07:00
10970
转载 每位程序设计人员都应铭记的10句编程谚语
<br />所谓谚语,就是用言简意赅、通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情。也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己。<br />1. 无风不起浪<br />代码设计是否糟糕,从某些地方就可以看出来。比如:a. 超大类或超大函数 b. 大片被注释的代码 c. 逻辑重复 d. If/else嵌套过深 <br /><br />程序员们通常称它们作代码异味(Code Smell),但是就我个人认为“代码警报”这个名字更为合适一
2011-03-08 15:01:00
1018
原创 制作纯资源dll
<br />新建一个空的Win32 Dynamic-Link Library 库,添加一些资源如图片,字符串之类的,如果使用vc6,则在project setting->Link->Project Options 下的编辑框最后加上 /noentry,如果是使用vs2008 则打开项目属性->配置属性->链接器->高级 在无输入点中选择"是/NOENTRY"即可。值得注意的是你必须添加一个文件如main.cpp,里面可以不写任何东西,否则编译不过的。借助纯资源dll可以实现软件本地化<br /> <br /
2011-03-03 15:34:00
1253
转载 窗口的子类化与超类化
1. 子类化 <br />改变一个已经存在的窗口实例的性质:消息处理与其他实例属性。<br />在SDK编程范畴内,子类化就是改变一个窗口实例的窗口函数(通过GetWindowLong()和SetWindowLong()),子类化所要做的就是为某窗口实例编写新的窗口函数。其操作是在实例级别上进行的。<br />在 MFC中子类化的情况有所不同:所有MFC窗口有相同的窗口函数,由该窗口函数根据窗口句柄查找窗口实例,在把消息映射到该窗口类(class)得消息处理函数上。为了利用MFC的消息映射机制,不宜改变窗口
2011-02-24 00:00:00
751
原创 SHFILEOPSTRUCT pfrom pto 如何赋值
想删除一个文件夹下所有文件,一查RemoveDirectory却查到SHFileOperation函数,它是参数是SHFILEOPSTRUCT这种类型的结构,对于其中pfrom和pto 赋值问题相信烦倒了不少人。下面有两种可行的方式,提供给大家,有不当之处请指出。1.SHFILEOPSTRUCT pData; pData.hwnd = NULL; pData.wFunc = FO_DELETE; pData.pFrom = "C://abc//def/0"; pData.pTo = NULL; pData.
2011-02-17 15:10:00
1498
原创 RegEnumValue调用失败返回ERROR_MORE_DATA
BOOL RegQueryKeyValue( HKEY hKey, TCHAR *lpName, TCHAR *name, TCHAR *value ){ HKEY handle; if ( ERROR_SUCCESS != RegOpenKeyEx( hKey, lpName, NULL, KEY_ALL_ACCESS, &handle ) ) { return FALSE; } TCHAR achkey[MAX_KEY_LENGTH]; DWORD cbname; TCHAR achclass[MA
2011-02-16 21:43:00
4534
原创 post-build command 设置
<br />我们通常会在这里写些命令如拷贝文件到指定的目录,相当方便,先展示正确的命令格式<br /> <br />copy "D:/workspace/aaa/Debug/RemoveFile.dll" "D:/workspace/bbb/Debug/RemoveFile.dll"<br />或者 copy "Debug/RemoveFile.dll" "../bbb/Debug/RemoveFile.dll",<br />一个是绝对路径,一个是相对路径,都是正确的。<br /> <br />像copy
2011-02-16 17:18:00
4279
转载 如何在VC6 MFC中使用GDI+
GDI+可应用于二维向量图象,栅格图象及排版,是为C/C++程序员而设计的表现为C++类而存在的接口,能用于一切基于Windows的应用中。作为GDI的后继者,GDI+在GDI中增加了新功能,如文本的反锯齿,渐变笔刷,Alpha溶合;也优化了GDI许多已有的功能。此外,GDI+改变了编程模式,使其更灵活及易用。GDI+并不限于在.Net中存在,实际上它由Windows XP或Windows Server 2003操作系统提供。它被打包在一个名为GdiPlus.dll的文件中。此文件位于C:/Windows/
2011-01-21 10:20:00
1317
1
转载 WTL中CString的使用问题
atlmsic.h中定义的是WTL::CString,不过可以通过宏_WTL_USE_CSTRING和_WTL_NO_CSTRING来确定是否使用。atlstr.h中定义的是ATL::CString。如果按照说明,先定义_WTL_USE_CSTRING,然后包含atlmsic.h,就会出现CString定义不明的编译错误,其实就是编译器分不清你是用WTL::CString,还是ATL::CString。避免这个问题的有两种方法:1、只用atlstr.h(ATL::CString),不用atlmisc.h(W
2011-01-18 09:37:00
1943
原创 fatal error C1075: 与左侧的 大括号“{”(位于“d:/vs2008workspace/wtl/controlmanial/controlmanial/stdafx.h(36)”)匹配之前遇到文件结束
<br />你的WTL /ATL程序里,如果你去掉<br /><br />BEGIN_MSG_MAP(classname)<br />****<br />END_MSG_MAP<br />程序正常,加上就出现如果类似的错误,那你先拍一下自己的脑袋,然后我的解释:<br />原因很简单,你把END_MSG_MAP后面的()写掉了<br /> <br />应该是:<br /> <br /><br />BEGIN_MSG_MAP(classname)<br />****<br />END_MSG_MAP()
2011-01-13 10:05:00
10552
原创 堆排序
#include #include #include using namespace std;class CompareObj{public: CompareObj( int _a = 0):m_a(_a){} int m_a;};void g_swap( CompareObj** PtrA, CompareObj** PtrB){ CompareObj *pTemp = *PtrA; *PtrA = *PtrB; *PtrB = pTemp;}
2010-12-30 14:37:00
777
转载 __declspec(selectany)的作用
在MFC,ATL的源代码中充斥着__declspec(selectany) 的声明。selectany可以让我们在.h文件中初始化一个全局变量而不是只能放在.cpp中。比如有一个类,其中有一个静态变量,那么我们可以在.h中通过类似" __declspec(selectany) type class::variable = value; "这样的代码来初始化这个全局变量。既是该.h被多次include,链接器也会为我们剔除多重定义的错误.
2010-12-24 12:41:00
671
转载 stdcall、cdecl、pascal在什么方面有所不同
<br />cdecl 由调用者清除堆栈 <br />stdcall 由被调的函数清除堆栈 <br />fastcall 是把函数参数列表的前三个参数放入寄存器eax,edx,ecx,其他参数压栈。<br /><br />_stdcall 与 _cdecl 的区别<br />几乎我们写的每一个WINDOWS API函数都是__stdcall类型的,首先,需要了解两者之间的区别: WINDOWS的函数调用时需要用到栈(STACK,一种先入后出的存储结构)。当函数调用完成后,栈需要清除,这里就是
2010-12-08 11:30:00
679
转载 VC菜单命令详解(文件打开、保存与关闭)
<br />第一部分:<br /><br />五个命令ID: 处理函数 <br />ID_FILE_NEW CWinApp::OnFileNew <br />ID_FILE_OPEN CWinApp::OnFileOpen <br />ID_FILE_SAVE CDocument::OnFileSave <br />ID_FILE_SAVEAS CDocument::OnFileSaveAs <br />ID_FILE_CLOSE CDocument::OnFileC
2010-11-27 13:19:00
1320
转载 doc,view,frame互相调用
<br />访问应用程序的其它类 <br /><br />获得CWinApp: <br />-在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp <br />-在其它类中只能用AfxGetApp() <br /><br />获得CMainFrame: <br />-在CMinApp中用AfxGetMainWnd()或者m_pMainWnd <br />-在CChildFrame中可用GetParentFrame() <br />-在
2010-11-27 13:17:00
1095
原创 VS2008生成后事件设置
<br />生成后事件,就是项目编译生成成功后执行的事件,通常的动作是将生成的dll,lib或者头文件拷贝到指定是目录下,而不用自己手动拷贝,非常的方便:<br />下面是几个例子:<br />copy /b "$(InputDir)DataMan.h" "../../include";<br />copy /b "$(TargetDir)DataManD.dll" "../../lib";<br />copy /b "$(TargetDir)DataManD.lib" "../../lib"<br />
2010-11-21 22:20:00
6184
原创 COM 接口函数 BSTR 的使用,不泄漏内存
void CHelloDlg::OnBNTest() { // TODO: Add your control notification handler code here for( int i=0; i
2010-10-23 00:17:00
1083
原创 关于动态链接库的使用
<br /><br />1.添加一个 函数:<br />BOOL APIENTRY DllMain( HANDLE hModule, <br /> DWORD ul_reason_for_call, <br /> LPVOID lpReserved<br /> )<br />{<br /> switch (ul_reason_for_call)<br />{<br />case DLL_PROCESS_ATTAC
2010-09-26 16:01:00
797
原创 vs2010中文旗舰下载地址
<br />我是win7的系统,前几天网上随便找了个英文版,安装老是不行,今天下了这个:<br />http://download.microsoft.com/download/E/0/4/E0427BB8-8490-4C7F-A05B-AFEA0FC3EA80/X16-60997VS2010UltimTrialCHS.iso,<br />现在差不多装好了,而且是中文版哦,哈哈,太开心了!
2010-09-10 18:50:00
1738
原创 MySQL 5.1 免安装版的配置
<br />想在win2000中安装,mysql5却提示要升级 windows Service Pack,发现有一种绿色版即免安装版可以解决这个问题,在网上看了一些讲解,基本知道怎么回事了。安装版的通过向导就完成了很多事情,而在免安装版中只能手动来配置文件,注册和启动服务<br />我下载的版本地址为:http://download.mysql.cn/download_file/zip/5.0/mysql-noinstall-5.0.22-win32.zip<br /> <br />我将它解压后更改文件名称
2010-09-06 17:08:00
2047
原创 strlen,strcpy_s
<br />前几天一个程序里写了几个SB句子,运行出错了,最后定位在这么几句:<br />char* psz = new char[len+1];<br />int ilen = strlen(psz);<br />strcpy_s(psz,ilen,str2);<br />delete [] psz;<br /> <br />不delete内存泄漏,delete 却出错。最后发现问题在于ilen。<br />我弄了个例子,len = 99 ,ilen 的长度根本不是100,怎么会这样??后来网上查了一把,
2010-08-23 11:31:00
1197
原创 dynamic_cast用法
<br />最近看看《com本质论》,里面的一个例子提到dynamic_cast的用法。即针对一些具有继承关系的类指针进行转换,以确定是否与某个其中某个类兼容,之前没怎么用,这里也说得不清楚,看个例子吧:<br />四个类:<br />class Animail{}<br />class Dog :public Ainmail{}<br />class Snobby : public Dog{}<br />class SnobbySB : public Snobby{}<br /> <br />int ma
2010-08-23 11:23:00
1499
1
原创 内存泄漏位置的确定方法
<br />今天在debug模式下关闭程序时发现有内存泄漏,但是没有提示哪行出现内存泄漏。<br />Detected memory leaks!<br />Dumping objects -><br />{89} normal block at 0x00780E80, 64 bytes long.<br />Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD <br />Object dump complete.<br /> <br />网上
2010-08-12 15:25:00
1392
转载 Invalidate、RedrawWindow与UpdateWindow的区别
<br /><br />这些函数的总结是我参考一些书籍和网上一些朋友的文章总结的。<br />一:什么时候才会发生重绘窗口的消息?<br /> 当需要更新或重新绘制窗口的外观时,应用程序就会发送WM_PAINT消息,对窗口进行重新绘制。<br />二:Invalidate() -- RedrawWindow() -- UpdateWindow()三个函数有什么异同?<br /> Invalidate()是强制窗口进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统
2010-07-27 08:57:00
825
转载 谈谈父窗口和所有者窗口[转]
<br /><br />一、概念和区别<br /> 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。<br /> 所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和 parent-child关系。前者称之为拥有/被拥有关系,后者称之为父/子关系。在这篇文字中,我把owner窗口
2010-07-13 15:27:00
520
vs2008 可用的 ado 封装类
2011-06-27
wmstub.lib and WMVCORE.lib
2010-12-04
Uxtheme 相关的几个文件,界面开发用的
2011-05-14
chrome v8 vs2010编译指导及 helloworld测试工程
2013-05-26
gtest demo
2012-05-24
pojo和xml自动生成工具
2015-08-11
128 Code打印
2013-11-04
UDP打洞demo
2017-03-27
MFC对话框打印及预览功能完美版
2012-02-29
自动生成pojo和mapping
2015-08-13
tcp 文件传输
2012-02-14
魔兽1.20的工具+源码
2009-09-02
socket UDP
2011-08-21
休息提醒工具
2012-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅