
VC++
知耻而后勇的蜗牛
这人很懒
展开
-
去除C++String的首尾空格
#include #include using namespace std;string& trim(string &);int main() { string s = " Hello World!! "; cout << s << " size:" << s.size() << endl; cout << trim(s) << " size:" << trim(s).原创 2013-04-13 09:47:50 · 18091 阅读 · 1 评论 -
linux的C/C++编译器参数
linux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC能够编译三种语言:C、C++和ObjectC(C语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。$ g++ hello.cpp -o hello $ ./hello主要参数:-ansi 只支持 ANSI 标准的 C 语法。这一选项原创 2012-09-26 18:47:14 · 1572 阅读 · 0 评论 -
linux 编程----内存泄露检测之mtrace
几种常用的内存检测工具mtrace是一个C函數,在里声明及定义,函数原型为: void mtrace(void);其实mtrace是类似malloc_hook的 malloc handler,只不过mtrace的handler function已由系统为你写好,但既然如此,系统又怎么知道你想将malloc/free的记录写在哪里呢?为此,调用mtrace()前要先设置 MALLOC_T原创 2012-09-26 19:55:52 · 14120 阅读 · 0 评论 -
vc++---项目 : error PRJ0002 : 错误的结果 1 (从“C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\rc.exe”返回)。
解决方案,选择属性->配置属性->清单工具->输入和输出->嵌入清单,把是改成否原创 2012-08-21 10:55:10 · 9949 阅读 · 6 评论 -
VC-----获得文件后缀名
自己解析文件名就可以了,反向查找字符 '. ',之后的部分就是扩展名CString GetSuffix(CString strFileName) { return strFileName.Right(strFileName.GetLength()-strFileName.ReverseFind( '. ')-1); }原创 2012-08-17 19:41:06 · 1387 阅读 · 0 评论 -
MFC/C++/C中字符类型CString, int, string, char*之间的转换
1 CString,int,string,char*之间的转换 string 转 CString CString.format("%s", string.c_str()); char 转 CString CString.format("%s", char*); char 转 string string s(char *); string 转 char转载 2012-08-17 19:39:57 · 1910 阅读 · 0 评论 -
Android 检测目录是否存在,不存在则创建
方法如下:我们假设SD卡是存在的,如果要检测SD卡是否存在,请参考前面的关于录音的文章,里面有具体的内容,和使用SD卡需要添加的权限,否则无法操作扩展存储设备1.只创建一级目录的形式为:例如:只在SD卡上建立一级目录("/sdcard/audio/"):boolean isFolderExists(String strFolder) { File转载 2012-08-14 09:39:45 · 10040 阅读 · 0 评论 -
解决IllegalBlockSizeException:last block incomplete in decryption异常
解决IllegalBlockSizeException:last block incomplete in decryption异常分类: webkit android最近做个加解密的实现,虽然实现了,但是发现还有如下的异常出现:javax.crypto.IllegalBlockSizeException: last block incomplete in decryptionat转载 2012-08-14 09:28:45 · 15756 阅读 · 0 评论 -
VC----实现汉字简繁转换
转载请注明出处:http://blog.youkuaiyun.com/yf210yf/article/details/7850472繁体为什么分为乱码和非乱码的。现在总算搞清楚了看起来是乱码那种叫Big5,非乱码的叫GBK繁体GBK包括了简体和繁体乱码的是Big5GB2312字集是简体字集,全称为GB2312(80)字集,共包括国标简体汉字6763个。 BIG5字集是台湾繁原创 2012-08-10 10:53:06 · 9548 阅读 · 1 评论 -
VS2008如何自动添加消息映射
开发MFC时,开发工具VS2008不能像开发工具VC++6.0那样,直接在类文件上右击选择“Add Window Message Handles”来添加消息映射。对于我这个初学者,刚开始一直没找到可以自动添加的方法, 后来只能手动添加,熟练了之后手动添加起来倒也快,不过慢慢地我终于发现了自动添加的方法。 比如,现在需要在View类中添加WM_CREATE消息映射。(1)转载 2012-08-11 08:38:14 · 1510 阅读 · 0 评论 -
VS2010编译警告:warning C4996: 'strcpy': This function
使用VS2005以上版本(VS2005、VS2008、VS2010)编译在其他编译器下正常通过的C语言程序,你可能会遇到类似如下的警告提示:warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _转载 2012-08-11 10:23:28 · 10671 阅读 · 0 评论 -
VC++----简繁体转换版本2
转载请注明出处:http://blog.youkuaiyun.com/yf210yf/article/details/7854021[cpp] view plaincopyprint?#include #include #include using namespace std; char * BIG52GBK(cha原创 2012-08-11 10:20:56 · 2391 阅读 · 0 评论 -
MFC----打开或创建文件
CFile file; if(file.Open(L"test1.TXT",CFile::modeReadWrite)) { MessageBox(L"Open File OK"); } else { file.Open(L"test1.TXT",CFile::modeCreate |CFile::modeReadWrite);原创 2012-08-11 09:54:46 · 938 阅读 · 0 评论 -
MFC----文件改名CFile---rename
CStringstrOldName= "c:\\1.exe "; CStringstrNewName= "c:\\2.exe "; CFile::Rename(strOldName,strNewName);原创 2012-08-11 09:52:02 · 14663 阅读 · 3 评论 -
linux 编程----内存泄露检测之Valgrind
本文部分参考网上相关资料。Valgrind能做什么?•内存使用检测,包括:–内存泄漏–非法内存访问 –未初始化变量使用 –重复释放内存 •多线程竞争 –检测死锁 -检测竞争 Valgrind还能做什么?•性能分析–Cachegrind+ cg_annotate它模拟 CPU中的一级缓存I1,D1和L2二级缓存,能够精确地指出程原创 2012-09-27 10:22:17 · 6404 阅读 · 2 评论 -
内存泄露检测之MFC
转载请注明出处:http://blog.youkuaiyun.com/yf210yf/article/details/8024816第一种:通过"OutPut窗口"定位引发内存泄漏的代码例如:在主对话框类中加入测试代码void CMyDlg::mytest(){int* leak = new int[10];}调试运行后在output窗口中可以看到内存泄露信息Det原创 2012-09-27 14:24:24 · 3472 阅读 · 1 评论 -
VS2008编C的时候,scanf怎么会报警告
1> warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.scanf的声明在VS2005中被转载 2013-04-09 13:14:53 · 2135 阅读 · 0 评论 -
如何将二维数组作为函数的参数传递
概述: 今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不至于再在这上面浪费时间。正文: 首先,我引用了谭浩强先生编著的《C程序设计》上面的一节原文,它简要介绍了如何将二维数组作为参数传递,原文如下(略有改变,请原转载 2013-04-09 13:13:19 · 2553 阅读 · 0 评论 -
C++读取以逗号为分隔符的数值
思想:全部读到一个字符串里,遇到","就换成空格,然后用这个字符串构造一个stringstream, 用>>读到数组里。stringstream用法分为istream和ostringstream.1 std::string name("zeta");2 int age = 27;3 4 ostringstream os;5原创 2013-04-09 13:08:21 · 37752 阅读 · 3 评论 -
C字符串和C++中string的区别
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作。以下是C字符串和C++中string的区别:C字符串string对象(C++)所需的头文件名称 或或需要头文件 原因为了使用字符串函数为了使用string类转载 2013-04-09 13:00:43 · 9989 阅读 · 0 评论 -
Eclipse C/C++开发环境搭建----Linux版
转载请注明出处:http://blog.youkuaiyun.com/yf210yf/article/details/8019539目标机:Ubuntu 11.101.装JDKhttp://www.oracle.com/technetwork/java/javase/downloads/下载 jdk-7u7-linux-i586.tar.gz解压即安装根据解压位置,配置环境变量原创 2012-09-26 12:46:40 · 11588 阅读 · 1 评论 -
Eclipse C/C++开发环境搭建----Window版
转载请注明出处:http://blog.youkuaiyun.com/yf210yf/article/details/80171211、Java JDK安装Java SDK很简单。到http://java.sun.com上找到适合你的操作系统的Java JDK安装程序,下载之并运行2、Eclipsehttp://eclipse.org/downloads/下载3、CDThttp原创 2012-09-25 19:57:22 · 25547 阅读 · 3 评论 -
用GDB调试程序(五)
查看运行时数据——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print print / 是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按1转载 2012-09-28 15:34:55 · 758 阅读 · 0 评论 -
用GDB调试程序(六)
七、设置显示选项 GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。 set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: (gdb) f #0 set_quotes转载 2012-09-28 15:36:14 · 1197 阅读 · 0 评论 -
用GDB调试程序(四)
查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令: backtrace bt 打印当前的函数调用栈的所有信息。如:转载 2012-09-28 15:33:06 · 885 阅读 · 0 评论 -
用GDB调试程序(一)
用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的转载 2012-09-28 15:25:30 · 686 阅读 · 0 评论 -
VC内存泄露检测之运行时库(CRT)
参考文献: 转载请注明出处:http://write.blog.youkuaiyun.com/posteditMemory leaks, defined as the failure to correctly deallocate memory that was previously allocated, are among the most subtle and hard-to-detect b原创 2012-09-29 10:34:57 · 1714 阅读 · 0 评论 -
用GDB调试程序(七)
改变程序的执行——————— 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。 一、修改变量值 修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命转载 2012-09-28 15:37:54 · 703 阅读 · 0 评论 -
用GDB调试程序(三)
四、维护停止点上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。 clear 清除所有的已定义的停止点。 clear clear 清除所有设置在函数上的停止点。 cle转载 2012-09-28 15:31:00 · 853 阅读 · 0 评论 -
用GDB调试程序(二)
GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Software Foundation, Inc. GDB is free softw转载 2012-09-28 15:28:09 · 576 阅读 · 0 评论 -
MFC----MessageBox的使用
用户点击X按钮是弹出确认框(确定要关闭?)实现void CMyDlg::OnClose(){ // TODO: 在此添加消息处理程序代码和/或调用默认值 if (IDOK==MessageBox("是否真的要退出?","",MB_OKCANCEL)) { CDialog::OnClose(); }}原创 2012-08-11 09:48:55 · 1296 阅读 · 0 评论 -
MFC----判断file路径是否文文件夹
if (GetFileAttributes(strFileName) != FILE_ATTRIBUTE_DIRECTORY) MessageBox( "Is not Directory ");原创 2012-08-11 09:42:34 · 4714 阅读 · 4 评论 -
MFC----文件拖拽的实现OnDropFiles
接着上篇的讲http://blog.youkuaiyun.com/yf210yf/article/details/7853741这篇实现文件的拖拽功能。实现的消息是WM_DROPFILES------>OnDropFiles依旧先添加WM_DROPFILES消息转载请注明出处:http://blog.youkuaiyun.com/yf210yf/article/details/7853823思原创 2012-08-11 09:21:43 · 20326 阅读 · 0 评论 -
系统杂类-----Windows XP无法切换用户的解决办法
Windows XP无法切换用户的解决办法今天我的电脑出现了一个奇怪的问题,居然不能切换用户了,只能注销当前用户之后才出现欢迎屏幕,然后才能进入另外一个用户,找了半天,终于Google出了下面的技巧。问题已经解决,留着以防止备用。哈哈,也方便别的朋友! 问:在 Windows XP系统下,单击”开始”菜单”注销”后并没有出现”用户切换”按钮,请问这是为什么?原创 2012-04-20 12:41:05 · 1602 阅读 · 0 评论 -
C语言-----VS2008建立C工程
转载请注明出处:奔跑的蜗牛(袁方的技术博客)如何在vs2008中建立C语言工程并运行。1.新建Win32工程2.选择空项目3.新建--->文件---》文本文件4.保存文件为.c文件转载请注明出处:奔跑的蜗牛(袁方的技术博客)5.在文件右键--》添加现有项6.编写Main.c代码#includ原创 2012-06-09 11:35:23 · 8821 阅读 · 0 评论 -
VC++--------光盘刻录
IntroductionIf you are looking for a sample in C#/.NET, then check out my article: "Burning and Erasing CD/DVD Media with C# and IMAPI2".Windows introduced the new IMAPIv2.0 with the release of th原创 2012-06-06 19:49:55 · 3279 阅读 · 0 评论 -
VC++------------一些简单的错误(不断更新)
1、在MFC中的CFRAME类中添加了一个消息void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point){ MessageBox("你好"); CFrameWnd::OnLButtonDown(nFlags, point);}只添加了一行 然后编译出错,“CWnd::MessageBoxW”:原创 2012-04-01 16:27:42 · 618 阅读 · 0 评论 -
VC++------------CFileDialog
CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDialog( BOOL bOpenFileDialog,LPCTSTR lpszDefExt = NULL,LPCTSTR lpszFileName = NULL,DWORD dwFlags = OFN_HIDEREADON原创 2012-04-10 19:44:05 · 2609 阅读 · 0 评论 -
VC++------------ListBox控件的使用
ListBox控件的使用 ListBox窗户用来列出一系列的文本,每条则本占一行。创建一个列表窗户可使用成员函数: BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff ); 其中dwStyle将指明该窗转载 2012-04-10 19:46:26 · 11677 阅读 · 0 评论 -
VC++------------为CListBox加上智能水平滚动条
为CListBox加上智能水平滚动条 ---- 为提高代码的可重用性,可以创建CListBox的派生类,在派生类中实现 “智能”水平滚动条。需要考虑的主要问题包括:跟踪最大字符串宽度(应能适 应不同场合下的字体变化),必要时计算垂直滚动条宽度,自动显示和调节水平 滚动条的大小。 ---- 选菜单 Insert/New Class,设新创建类的名字为C原创 2012-04-11 14:05:13 · 3016 阅读 · 1 评论