DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  C++/C

上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 47 下一页

摘要:VC调试,一般是需要设置一个断点的,譬如1)int i;2)int j;如果在int j处设置了断点,那么当程序运行到int j时,程序停止,这个时候就可以查看程序各种变量或执行状态了,简单的办法就是把鼠标停在要看的变量上面。会有一个个小的弹出窗口来显示变量状态。1)设置断点,一种是在代码行的最左边鼠标点击一下,会有个红点出来。快捷键是,将编辑光标--即插入符(不是鼠标光标)停在要设断点的代码行,然后按F9,就会有红点出来。2)设置的断点,程序一定要能执行到。譬如:{ //0int i = 0; //1if (0 != i) {//2int j = 1; //3j... 阅读全文
posted @ 2012-12-28 20:20 DoubleLi 阅读(447) 评论(0) 推荐(0) 编辑

摘要:最近一段陆续用了几种调试VC程序的方法。一般程序也肯定会使用到这几种方法。现在总结如下:1.在VC里面debug版本用TRACE自己打印trace到调试窗口。局限就是,不能脱离了vc的环境进行调试。使用者只能是程序编写者来进行调试。2。利用微软的调试工具Dbgview.exe,来看trace的输出,可以脱离vc的环境。此方法与第一种的不同是,可以脱离VC环境,自己接受程序利用TRACE打印的消息。使用者可以是程序测试人员来进行测试时,抓取程序出错时的log,供编写程序者分析原因。这个在一定程度上来说是扩大了trace的使用范围。3。自己在code里面嵌入code,把trace输出到文件里面去。 阅读全文
posted @ 2012-12-28 20:16 DoubleLi 阅读(2123) 评论(0) 推荐(0) 编辑

摘要:C语言中实现参数个数可变的函数 采用C语言编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等1、在win环境下编程例子:以下例子在VS2010编译通过。#include<stdio.h>#include<string.h>#include<stdarg.h>int demo(char * ,...);int main(){demo("TEST",5,4,3,2,1 阅读全文
posted @ 2012-12-28 20:13 DoubleLi 阅读(5514) 评论(0) 推荐(0) 编辑

摘要:这几天不是很忙,有拿起了《深入浅出MFC》,这本书其实看过2遍了,不过时间很久了,所以也忘了很多。现在再次看这本书,发现又吸收很多新东西。想起了有人说过的一句话,具体记不清除了,但是大意是。同一本书,每看一遍书,就有不同的收获。也是因为你的知识水平在提高,你说关注的东西的角度就不一样,所以每次都会有收获的。总是用VC里面的TRACE来打印调试,但是这个唯一不足就是,不能方便的打印变量,就像messagebox一样。今天看到《深入浅出MFC》里面提到了另一个命令。afxDump用法如下:int i = 10;afxDump << "hello world !" & 阅读全文
posted @ 2012-12-28 20:02 DoubleLi 阅读(529) 评论(0) 推荐(0) 编辑

摘要:VC++提供了一个叫输出窗口的窗口,在调试程序和生成是可以看到输出信息,这个信息如果是MFC程序可以用TRACE宏来打印,在控制台程序里就没有了。所以我们直接调用API来实现上面的功能。首先在程序中引入头文件windows.h或winbase.h调用函数有两种版本ANSI和UNICODEOutputDebugStringAOutputDebugStringW自动版本OutputDebugString输出方法OutputDebugString(_T("字符串"));OK可以了。最后在前面加上一个宏判断#ifdef_DEBUGOutputDebugString(_T(" 阅读全文
posted @ 2012-12-28 17:54 DoubleLi 阅读(454) 评论(0) 推荐(0) 编辑

摘要:一、调试基础调试快捷键F5: 开始调试Shift+F5: 停止调试F10: 调试到下一句,这里是单步跟踪 F11: 调试到下一句,跟进函数内部Shift+F11:从当前函数中跳出Ctrl+F10:调试到光标所在位置F9: 设置(取消)断点Alt+F9:高级断点设置跟踪调试1、尽量使用快捷键时行调试2、观察调试信息3、高级中断设置异常调试重试->取消->调试函数堆栈,用variables或者call stack 窗口Release调试1、经常测试你的Debug和Release版本2、不要移除调试代码,如用ASSERT, TRACE等。3、初始化变量,特别是全局变量,malloc的内存 阅读全文
posted @ 2012-12-28 17:50 DoubleLi 阅读(346) 评论(0) 推荐(0) 编辑

摘要:转载请标明是引用于 http://blog.csdn.net/chenyujing1234欢迎大家拍砖!一、应用背景有一个在win7中用VS2008编译成功,运行正常的程序:Exe+DLL;放到XP虚拟镜像上运行却提示:LoadLibrary返回14001。(1) 后来采用了下面方法中的“方法一”解决了。(2) 但在方法一的基础上还要安装VS2008对应的分发包vcredist_x86.exe(VS2005的安装目录下提供了此文件,但在VS2008去不提供,但可到网上下载)。参考文章:http://hi.baidu.com/roger_long/item/867a7cf6fd8cf4cc521 阅读全文
posted @ 2012-12-28 17:29 DoubleLi 阅读(4486) 评论(0) 推荐(1) 编辑

摘要:1.CDumpContext 该类没有基类。这个类支持面向流的诊断输出,以人能够阅读的文本。该类重载了<<操作符。afxDump是一个预声明的CDumpContext对象,可以方便使用。该对象只在MFC的Debug版中有效。可以将调式信息输出到调试输出窗口或调试终端。// example for afxDumpCPerson myPerson = new CPerson;// set some fields of the CPerson object...//..// now dump the contents#ifdef _DEBUGafxDump << " 阅读全文
posted @ 2012-12-28 17:06 DoubleLi 阅读(11644) 评论(0) 推荐(0) 编辑

摘要:我们知道,MFC中可以调用宏TRACE等十分方便的输出调试信息到Visual Studio输出窗口,但C++中没人类似的函数,最近我在开发一个小程序时跟踪了一下MFC的TRACE宏,发现它映像了atltrace.h中的ATLTRACE宏,因些,我们也想在C++中使用TRace可以用如下方式:#include <atltrace.h>#define TRACE ATLTRACETRACE("");在C++中可以直接使用下面的函数OutputDebugString Function Sends a string to the debugger for display 阅读全文
posted @ 2012-12-28 16:38 DoubleLi 阅读(7944) 评论(0) 推荐(2) 编辑

摘要:在win32程序中可以使用函数OutputDebugString输出调试信息。输出的结果可以在vs的集成环境中看到,也可以使用工具DbgView.exe捕捉结果。函数的原形如下:OutputDebugStringThe OutputDebugString function sends a string to the debugger for display.void OutputDebugString( LPCTSTR lpOutputString);ParameterslpOutputString [in] Pointer to the null-terminated string to b 阅读全文
posted @ 2012-12-28 15:37 DoubleLi 阅读(2199) 评论(0) 推荐(0) 编辑

摘要:开发环境 ---->Turbo c DOS时代c语言开发的经典工具,目前适合两类人使用:c语言beginner(尤其是学生一族),具有怀旧情节的专业人士:) ---->Visual C++ 6.0/7.0 稳定而强大的IDE开发环境,具有丰富的调试功能,定制宏的功能也是其一大特色。Microsoft的经典之作,功能强大自不必言说。附带的一些工具也很不错,比如:Spy++。但编译器较之同类,支持c++标准的程度不够好,尤其6.0及以前的版本。 ---->BCB Borland的C++ Builder是可以与VC匹敌的另一个功能强大的IDE,速度和稳定性稍逊,但对c++标准支持的程... 阅读全文
posted @ 2012-12-24 15:24 DoubleLi 阅读(655) 评论(0) 推荐(0) 编辑

摘要:Socket模型详解两种I/O模式一.选择模型二.异步选择三.事件选择四.重叠I/O模型五.完成端口模型五种I/O模型的比较两种I/O模式1、 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选 阅读全文
posted @ 2012-12-17 00:10 DoubleLi 阅读(797) 评论(0) 推荐(0) 编辑

摘要:学好VC++的十大良好习惯每到年底各大媒体就争先恐后热火朝天地搞总结,什么十大人物,十大品牌,十大美女,十大帅哥等等五花八门乱七八糟的让人充满好奇充满怀疑,这事确实让人有点郁闷,就如同男足国家队的国产教练如沈墙扶们每一次踢球失败后都要说这么一句:我们回去后要好好总结,下次会打得更好! 这话听了几十年了,耳朵都生虫了,但还是无法看到中国猪球队有象人样的表现。因此,总结在某一程度上来说只不过是一种形式罢了,总结不代表就能改过原有的不足,也不代表就能进步了,甚至有点俗不可耐,尽管如此,阿蒙亦明知故俗,前人说过了入乡了就要随俗,因此你生活在这种环境里,你无法对这些无聊无趣的东东置之不理,除非你是天才, 阅读全文
posted @ 2012-12-16 23:19 DoubleLi 阅读(239) 评论(0) 推荐(0) 编辑

摘要:如何成为一名优秀的程序员?一位仁兄说的“程序员写的程序不是算法+语法 ,而是要能够满足用户需求的工 具”我非常赞同,要想达到用户需求就必须从各个方面来考虑如业务、人机交互 、效率等方面,而不只是一个语言(语法)的问题,语言(语法)只是工具,只 知语法不知其他那就真是编程机器了! 编程机器在印度高中生经过几个月培训,按照严谨的软工方法,加上较高的管理 ,就可以胜任了!大家相信吗,我是相信的!谈到这里我就不禁说到了国内教育 界最近在探讨的问题“计算机科系的毕业生特别是本科大专生到底出来干啥、如 何适应社会要求”,大家也看到了很多计科系大学生说精通N种语言,熟悉N种工 具,不知道学校里的其他知识到那 阅读全文
posted @ 2012-12-16 23:19 DoubleLi 阅读(342) 评论(0) 推荐(0) 编辑

摘要:如何学习vc++(vc的用处) 1 vc的用处我感觉下面一些领域比较适合于用vc: 操作系统编程,game,图形设计,corba编程,com编程,网络编程。我谈谈我的体会。我现在在深圳的一家公司从事IP电话网关的开发。通过这个项目,我 才真正体会到VC有多么强大,上百个线程同时工作,数据库并发访问,而且全部软件基 于COM构造,这样高性能的大型软件,只有VC方显出其英雄本色!不过,在国内,有机会 接触这样的大型系统软件的不多。而在做大型系统软件时,对VC程序员的要求就不仅仅 是熟悉VC、MFC本身了,这只是基本的要求,最的挑战是你如何运用VC实现一些高级的功能特性。其实,VC做数据库也不是不合 阅读全文
posted @ 2012-12-16 23:17 DoubleLi 阅读(461) 评论(0) 推荐(0) 编辑

摘要:序:近来,在论坛上面几乎每天都可以看到很多的人提出如何学习MFC,学习MFC的确不是一件很容易的事情,加上成千上万的API函数和微软的一些资料的保留,学习MFC就变得更难了。不过我认为难在入门,入门后就慢慢觉得得心应手了。下面是一些先辈们学习过程中总结出来的方法及学习感受,今天把它们整理出来,供大家参考。正文:我记得我在网上是这么说的:先学win32的SDK,也就是API, 再学MFC,这么一来呢,就先有个基础,MFC是API的封装, 如果API用的熟了,MFC上手就轻松的多了。我觉得呢,现在不少WINDOWS编程入门的好书很多,多买一些,多看看,多想想。不要心浮气躁。我的经验就是一边看书,一 阅读全文
posted @ 2012-12-16 23:16 DoubleLi 阅读(2362) 评论(0) 推荐(0) 编辑

摘要:接上篇)VC 进阶:1. C 语言;2. C++ ,OOP;3. Windows 运作机理,SDK编程;4. MFC类库,应用程序框架编程;5. ActiveX,ATL,COM……每步骤通常需要6个月,最快也得3个月,诸位同意否? 学 VC 或 windows 编程分三 STEP:1. 只 SDK 提供的 Function 作开发,不要Object, 你会知 How to handle Message. 2. MFC 编程, 用 CEdit 等开发.3. 再用 VC如果你有一个别人的好程序, 不妨自己跟着他的思路,从小到大自己完成一遍。好书:<> 学习VC++有相当的内容要学,而最 阅读全文
posted @ 2012-12-16 23:16 DoubleLi 阅读(409) 评论(0) 推荐(0) 编辑

摘要:基于Winsock API的VC网络编程实战 随着计算机信息技术的飞速发展,互联网与人类社会的工作、生活越来越紧密相关,它已经成为人类获取、交流信息的重要途径和手段。所以当前对于开发人员来说,网络编程已是必备的技能。本实例详细介绍了如何利用Winsock API编写网络应用程序。 一、实现方法 在网络编程中最常用的方案便是Client/Server (客户机/服务器)模型。在这种方案中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户向这个服务的地址提出了连接请求。在这个时刻,服务程序被"惊醒&qu 阅读全文
posted @ 2012-12-16 23:11 DoubleLi 阅读(480) 评论(0) 推荐(0) 编辑

摘要:MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢?静态链接库是要先把程序中所需要使用的函数编译成机器码,保存在*.lib文件中。编译器会去*.lib中找出所需要的函数,并把这些函数的机器码复制一份,放在可执行文件中。将lib库引入工程,有下面3种方法。第一种方法,lib文件直接加入到工程文件列表中。在VC中打开“File View”一页,选中工程名,单击鼠标右键,然后在弹出的快捷菜单中选择【Add Files to Project】命令,在弹出的文件对话框中选中要加入dll的lib文件即可。 阅读全文
posted @ 2012-12-16 22:59 DoubleLi 阅读(9150) 评论(0) 推荐(0) 编辑

摘要:static 有两种用法:面向过程程序设计中的static 和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明 static 在类中的作用。一、面向过程设计中的static 全局变量、局部变量、静态全局变量、静态局部变量的区别 C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为 6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。 从作用域看: 全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用 extern 关键字再次声明这个全局变量。 阅读全文
posted @ 2012-12-15 22:01 DoubleLi 阅读(4514) 评论(0) 推荐(0) 编辑

上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 47 下一页