C/C++
文章平均质量分 73
erick08
11届毕业生,熟悉C/C++、MFC编程
展开
-
GBK转码成UTF-8及奇数个汉字解码得到乱码的问题(C++)
首先转码方法网上很多,如下面:__inline void Convert(const char* strIn, char* strOut, int sourceCodepage, int targetCodepage){ int len=lstrlen(strIn); int unicodeLen=MultiByteToWideChar(sourceCodepage,0,st原创 2013-01-31 12:49:39 · 8419 阅读 · 2 评论 -
BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t
Visual C++.NET涉及到ATL/ATL Server、MFC和托管C++等多种编程方式,不仅功能强大而且应用广泛。在编程中,我们常常会遇到ANSI、Unicode以及BSTR不同编码类 型的字符串转换操作。本文先介绍基本字符串类型,然后说明相关的类,如CComBSTR、_bstr_t、CStringT等,最后讨论它们的转换方法, 其中还包括使用最新ATL7.0的转换类和宏,如CA2CT、转载 2013-02-23 14:09:00 · 623 阅读 · 0 评论 -
Win7 下支持多次双击打开dsw文件 及 修改dsw图标
Win7 下支持多次双击打开dsw文件: Win7安装vc6,第一次提示兼容性提示时,选择不再提示,用了一段时间没有发现vc6的兼容性问题XP下打开多个vc界面在文件夹选项——文件类型中找到这两种后缀名,通过去掉DDE选项后实现。Win7没有这个选项,可以按如下方法解决:打开cmd1)输入命令assoc .dsp回车,确认后缀为.dsp的文件类型为dspfile;2)输入原创 2013-02-20 20:58:33 · 3981 阅读 · 0 评论 -
学习C++需要注意的十八个基础知识
一、#include “filename.h”和#include 的区别 #include “filename.h”是指编译器将从当前工作目录上开始查找此文件 #include 是指编译器将从标准库目录中开始查找此文件 二、头文件的作用 加强安全检测 通过头文件可能方便地调用库功能,而不必关心其实现方式 三、* , &修饰符的位置转载 2013-02-05 19:56:06 · 626 阅读 · 0 评论 -
调试Release版本应用程序
目录(?)[+]引言不要随意删除Release版本需要的代码使Debug编译模式接近Release模式错误的假定造成编译模式错误您是否相信编译器 总结报告编译模式下的调试编译器生成了错误的代码最后的思考后记调试Release版本应用程序引言不要随意删除Release版本需要的代码使Debug编译模式接近Release模式错误的假定造成编译模式错误您是否相信编译器转载 2013-02-04 15:52:40 · 377 阅读 · 0 评论 -
VC的常用快捷键,你知道吗?
1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号 <>)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。 2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F转载 2013-02-01 10:07:17 · 446 阅读 · 0 评论 -
VC 6.0下搭建 wxWidgets开发环境
VC 6.0 下搭建 wxWidgets 开发环境 和 GTK、 QT、 SWT、 SWING 一样, wxWidgets 也是一种开源跨平台的 GUI 框架。因 wxWidgets 和 MFC 有些渊源,有些亲近,故要体验一番 wxWidgets 。现在最新版是 2.8.7 。 wxWidgets 程转载 2013-02-01 10:04:53 · 568 阅读 · 0 评论 -
用C++读写unicode文本
用C++读写unicode文本http://librawill.blogspot.com/2008/08/cunicode_2881.html 熟悉一下字符类型,char, wchar_t, TCHAR,最熟悉的char是单字节字符,适用于ANSI编码;wchar_t是双字节的宽字符类型,适用于unicode编码;TCHAR是一个宏,在ANSI坏境下定义为char,unicode坏境下转载 2013-01-27 17:37:38 · 618 阅读 · 0 评论 -
STL容器类vector,list,deque的比较
目录(?)[+]STL容器类vectorlistdeque的比较vector - 会自动增长的数组list - 擅长插入删除的链表deque - 拥有vector和list两者优点的双端队列性能竞技场性能总结与使用建议测试程序清单STL容器类vector,list,deque的比较作者:斑鸠更新时间:2009/01/04编译器版本:Mic转载 2013-01-27 17:35:37 · 519 阅读 · 0 评论 -
IP地址CString和DWORD转换
#pragma comment(lib,"ws2_32.lib")#include //将CString 型IP地址在IPAddressCtrl中显示 CString strIP="192.168.0.10"; DWORD dwIP; dwIP = inet_addr(strIP); unsigned char *pIP = (unsigned char*)&dwI转载 2012-08-22 18:08:15 · 11439 阅读 · 0 评论 -
C++:STL标准入门汇总
学无止境!!!第一部分:(参考百度百科) 一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段转载 2012-06-22 16:42:08 · 610 阅读 · 0 评论 -
C++复习总结(涵盖所有C++基本考点)!
这几天一直忙考试了,随笔也没什么好写的东东,昨天考电路也挺痛苦的,没有复习好,仓促上阵,很多不会,拿不准。还好我们这期末成绩是按平时分+考试分,要不然铁挂。不过总算熬过了一科。8号考C++,所以我就干脆把所有C++考点总结一下,凑篇随笔发上来。我会以知识点的形式总结,方便后人参考。请看正文:*********************************C++复习总结**转载 2012-06-22 17:01:45 · 994 阅读 · 0 评论 -
STL容器 vector,list,deque 性能比较
目录(?)[+]vector - 会自动增长的数组list - 擅长插入删除的链表deque - 拥有vector和list两者优点的双端队列性能竞技场性能总结与使用建议测试程序清单转载:http://www.cppblog.com/sailing/articles/161659.htmlSTL容器类vector,list,deque的比较作者:转载 2013-02-24 09:55:37 · 625 阅读 · 0 评论 -
VS2005,VS2008,VS2010工程文件和解决方案的区别
由于公司开发工具版本不统一,有使用VS2005的,有VS2008的,有VS2010的,这样代码共享的时候就会存在 问题。不可能把所有的版本的工具都安装上。所以最后的方式就是在代码中把其他几种的解决方案和工程文件都放一个,这样人家就可以选择相应的版本去打开工 程。这种直接改的方式前提条件是程序都是编译成2.0版本的,且没有使用高版本的语言特性,否则用低版本打开的时候可能编译不过。转载 2013-02-24 10:00:52 · 1458 阅读 · 0 评论 -
CDialogSK---一个支持皮肤化的对话框类
无意中在网上看到一个对话框类CDialogSK---一个支持皮肤化的对话框类,颇感兴趣先看下CDialogSK是干什么的:(以下内容来自网上)CDialogSK---一个支持皮肤化的对话框类一、介绍该类从MFC的CDialog继承而来,支持如下特征:1、运行于win2000或者winxp平台上,可以使用任何透明色以透视对话框的区域。2、运行于win2000或者winxp转载 2013-02-24 10:03:43 · 737 阅读 · 0 评论 -
Delete 和 delete [] 的区别
当调用delete的时候,系统会自动调用已分配的对象的析构函数。当我们用new [] 分配的对象是基本数据类型时,用delete和delete [] 没有区别。但是,当分配的对象是自定义对象时,二者不能通用。一般来说使用new分配的对象,用delete来释放。用new[] 分配的内存用delete [] 来逐个释放。delete与delete[]需要注意的地方 1:首先来说一个大家转载 2014-03-08 22:28:17 · 693 阅读 · 0 评论 -
解决VC提示 syntax error : identifier 'LONG_PTR'错误的方法
内容来源: http://redsoftcn.spaces.live.com/blog/cns!b6ccca3b8e271d2a!135.entry ,向作者致谢!搞RTC开发时编译遇到提示:error C2061: syntax error : identifier 'LONG_PTR'的问题,开始有点摸不着头脑,其实就是库文件的顺序问题,解决方法如下选择Tools菜单下面的Options修转载 2014-02-16 11:40:04 · 1791 阅读 · 0 评论 -
MFC下多线程的建立
之前在MFC就用过多线程,不过印象不深刻,再加上好长时间没用了,今天碰巧想起,就记下来,一则加深自己对多线程的印象,二则以后忘了直接上博客就可以查找,三则和大家分享下心得。下面以MFC的Progress控件为例。//注意:// AfxBeginThread函数参数类型是UINT(usigned int)的。 // 而CreateThread函数的参数才是DWORD(原创 2012-03-03 20:58:25 · 2528 阅读 · 2 评论 -
VC++编写交互程序时将打印结果输出到cmd窗口显示
VC++编写交互程序时将打印结果输出到cmd窗口显示地址:http://www.itwis.com/html/c/ccc/20080527/1576.html2011-06-20 10:57:46humming0 评论475 浏览在使用VC++编写交互程序时运行中cout的信息是看不到的,使用下面的方法可以在你的交互程序运行的同时弹出一个cm转载 2013-06-06 17:33:41 · 2664 阅读 · 0 评论 -
半夜睡不着,MFC搞起来!
http://blog.csdn.net/dw903632958/article/details/8878368 一 MFC的概念和作用1 什么是MFC? 全称 Microsoft Foundation Class Library 我们称之为微软基础类库, 封装了各种windowsAPI函数,C++语法 中的一些数据结构。 1) MFC就是一个类库。转载 2013-05-04 21:04:47 · 1952 阅读 · 0 评论 -
[MFC]对CString::GetBufferSetLength方法的探究
在使用CString的GetBufferSetLength方法时,遇到了一个问题,代码如下:CString path;::GetCurrentDirectory(MAX_PATH, path.GetBufferSetLength(MAX_PATH));path.Append(TEXT("\\SubDir"));wprintf(TEXT("%s"), path);这段代码的输出始转载 2013-04-27 16:27:31 · 945 阅读 · 0 评论 -
MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置 及Invalidate(TRUE)的闪屏问题
在MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置:CRect r;pWnd->GetWindowRect(&r);这样获得的r是控件相对于屏幕的坐标,然后用ScreenToClient(&r)就可以获得控件相对于父窗口的坐标。如果用GetClientRect(&r)的话,r.left和r.top始终是0,得到的并不是实际坐标。+++++++++++++++转载 2013-03-24 15:17:18 · 2282 阅读 · 0 评论 -
MFC添加快捷键
PreTranslateMessage它没有经过TranslateMessage()处理。可以在该函数 中使用(pMsg->wParam == VK_RETURN)来拦截回车键。virtual BOOL PreTranslateMessage(MSG* pMsg);BOOL CKeDownDlg::PreTranslateMessage(MSG* pMsg){转载 2013-03-24 15:01:19 · 813 阅读 · 0 评论 -
MFC注册窗口类以及FindWindow按窗口类名查询
呵呵,最近在研究SendMessage函数,其中需要用到m_hWnd,之后延伸着又尝试获得窗口的句柄,于是遇到了FindWindow函数,原型如下:HWND FindWindow( LPCSTR lpClassName, //输入窗口的类名,其实需要是注册过的类名才行,否则是要报错或者查找失败的。 LPCSTR lpWindowName, //输入窗口的名称,就是窗口上面蓝色转载 2013-03-24 14:53:34 · 3331 阅读 · 0 评论 -
BSTR,_bstr_t,CComBSTR,VARIANT,_variant_t,CString的转换
转载:http://www.cnblogs.com/GoodGoodWorkDayDayUp/archive/2010/11/15/1877655.htmlVC6.0上编译通过,console程序,使用静态MFC库。也许有不对的地方,欢迎指正#include #include #include #include void main(){ BSTR bstrT转载 2013-02-25 10:55:33 · 1097 阅读 · 0 评论 -
VC轻松解析XML文件 - CMarkup类的使用方法
VC轻松解析XML文件 - CMarkup类的使用方法VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等。据说tinyXML很好,可能字符集问题,我编译不了。所以就用CMarkup来解析,使用过后,觉得非常不错,使用起来很方便。CMarkup下载地址:http://www.firstobject.com/发现网上有方法很法,我就摘下来了转载 2013-02-24 10:11:50 · 4679 阅读 · 0 评论 -
短时间让大家对C++ STL有所学习
STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。STL另一个重要特性是它不是面向转载 2012-06-22 16:20:30 · 650 阅读 · 0 评论 -
VC Studio 使用技巧大全
1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(转载 2012-07-05 12:44:50 · 507 阅读 · 0 评论 -
使用auto_ptr需要注意的事项 .
a. auto_ptr定义于头文件memory中; b. auto_ptr只能用来管理单个动态创建的对象,而不能管理动态创建的数组; c.和其他copy和assign不同,auto_ptr的copy和assign会改变右边的操作数,assignment符号的两边的auto_ptr均为左值;There is a crucially important difference b转载 2012-03-28 14:59:34 · 400 阅读 · 0 评论 -
动态分配资源的自动释放 – auto_ptr的实现原理 .
动态分配资源的自动释放的英文是 Resource Allocation In Initialization,通常缩写成RAII。根据《C++ Primer》第4版:“During stack unwinding, the function containing the throw, and possibly other functions in the call chain, are转载 2012-03-28 14:57:48 · 663 阅读 · 0 评论 -
ostringstream函数的使用
当存在未知数据大小的时候,可以使用 ostringstream 来代替 sprintf , 避免总是申请大量的缓冲区.用法可以参照下面转载的文章.另外解决今天遇到的一个问题,如果要重复使用一个ostringstream对象,并且需要在下次使用前清空缓冲区,则可以使用str()函数重设置缓冲区. 如:ostringstream osSql;//first timeosSql..转载 2012-03-26 18:35:01 · 627 阅读 · 0 评论 -
C++ STL 迭代器的简单模拟
下面的代码只是在简单的模拟STL的迭代器的实现机制,当然具体的vector实现远比下面的复杂。同时为了尽量的简单,我对很多细节的问题没有处理,通过这段代码只是想告诉大家:STL 迭代器的实现技巧。 #include using namespace std; /* *开 发 者:卡农 *开发时间:2010-10-1转载 2012-03-23 16:03:10 · 548 阅读 · 0 评论 -
教你写一个C的assert宏
在C中 , 相信assert这个断言是用的最频繁的宏之一,特别是在我们找BUG的时候,多用一些断言可以让我们更靠近出错的代码,不多说,进入我们的主题,写出一个assert宏来。 首先我们都知道,assert在debug版下是有效的,在release版中assert是无效的,那么我们应该如何实现这一功能呢?实际上在release的版本中系统定义了NDBUG这个宏常量,当然在debug中没有定义转载 2012-03-23 15:28:28 · 584 阅读 · 0 评论 -
MDICSharp案例总结
MDICSharp案例总结:1、 MDI窗体IsMdiContainer属性设置为true2、 MainMenu、toolBarButton、ImageList工具控件等设计顶级菜单MdiList属性设置为True,则显示所有子窗口及选中当前子窗口ImageList需准备好图片toolBar需先选择要用到的ImageList,然后设置Buttons属性,打开Buttons属性对原创 2012-01-12 16:50:44 · 622 阅读 · 0 评论 -
转一个别人写的优秀代码 Octal Fractions
#include #include char c[50]; int i,l; double x,y; int main() { while(scanf("%s",c)!=EOF) { printf("%s [8] = ",c); l=strlen(c)-1; x=0; y=1;转载 2012-01-12 17:05:15 · 695 阅读 · 0 评论 -
Microsoft SDK 中Sample案例之Amcap項目 的运行方法
Microsoft SDK 中Sample之Amcap 的运行方法 写这篇文章的由衷是我想很多编程爱好者都可能会去尝试运行SDK的Sample,但微软提供的代码并不能直接编译,我开始发现运行报错时,还拙劣地以为是代码有误,竟然改动了少许代码,结果显然还是fail了。 网上查了很多关于编译失败的资料,有讲“无法解析的外部符号”,也有讲到具体代码中的类及头文原创 2012-01-11 18:49:01 · 3745 阅读 · 1 评论 -
某源代码案例学习总结
1/Qsort 使用方法:/* Define struct bb_applet applets[] */#include "../include/applets.h"enum { NUM_APPLETS = ARRAY_SIZE(applets) };static int cmp_name(const void *a, const void *b){原创 2012-01-12 16:58:36 · 515 阅读 · 0 评论 -
如何在VC6.0中使用SGI-STL
如何在VC6中使用SGI-STL 首先到SGI下载一份STL,216K的zip包,真是个了不起的杰作……网上都是溢美之词。将stl.zip解压到一个目录,比如C:\SGISTL,然后在VC6的IDE环境下,Tools->options->Directories->Include files,将C:\SGISTL(你解压的目录)添加进去,然后,将这个路径移到最顶端,转载 2011-12-14 13:57:54 · 1253 阅读 · 0 评论 -
C语言实现类似于C++的Vector容器
C语言实现类似于C++的Vector容器 #include #include #include //=============================Starting to define my Array class=========================//-----------------------------Declaration segm转载 2012-03-16 11:29:39 · 5646 阅读 · 1 评论 -
最基本的Win32程序----消息机制
犹记得大二暑假在无锡汉方公司培训的情景,在学MFC之初,包大哥给我们讲了这堂课:最基本的Win32程序。而如今毕业快一年了,有同事看我会编写这些简单的可视化程序,还向我请教,其实我知道这些都不一定有多少技术含量,只不过用得多,多熟悉点而已。实在没什么值得骄傲,虽说目前还只是初来乍到的新人,也没有多少特长技能,也没有那些一毕业就进大公司做大项目的同学优秀,但在汉方培训的时候本人还是学到不少东东的原创 2012-03-14 15:28:53 · 740 阅读 · 0 评论