2012-09-14 10:03
⁄ 工业·编程
⁄ 共 3189字
4.1 调试的几种技巧
4.1.1 使用ASSERT
ASSERT(ASSERT_VALID)宏仅在程序的“Debug”版本中捕捉程序错误。该宏在“Release”版本中不生成任何代码。
4.1.2 使用TRACE
以下的例子只能在debug中显示,
a) TRACE
CString csTest = “test”;
TRACE(“CString is %s/n”,csTest);
b) ATLTRACE
c) AfxDump
AfxDump要求被dump的对象从CObject类继承,并且实现了Dump的方法。
CTime time = CTime::GetCurrentTime();
#ifdef _DEBUG
afxD...
软件开发阅读全文
2012-09-13 22:02
⁄ 工业·编程
⁄ 共 705字
1 前言
当程序的运行结果与程序员预想的不一样,如死机,计算值不正确,出现内存访问冲突等,就需要进行调试
2 进行调试前的准备工作
因为程序调试是一项十分耗时的工作,很难估计出将要花费多长时间,因此在调试前,一定要做好充分准备,尽量避免做无用功:
1. 构造好的测试步骤,让程序出错有规律性或出错的概率越大越好
2. 被调试程序及相关库是最符合...
软件开发阅读全文
2012-09-11 12:36
⁄ 工业·编程
⁄ 共 239字
宏观,即系统设计与架构;微观,即算法精确实现,
两条路,选一条坚定地走下去,可有所成。夹在中间的则是添砖加瓦的码农,如果不脱离这个层次,则只能面临淘汰。
我,似乎适合宏观,天赋所致。
框架先这么定,具体以后再详述。
C/S架构要点:C要炫,S要海量吞吐量,稳定性
预备话题:项目API,类API的独立性,
好代码特征:搜索结果最小化
C API的设计广泛采用前缀法.通常函数和类型前缀大小写相反,比如openGL函数名以gl开头,类型以GL...
软件开发阅读全文
2012-09-11 12:33
⁄ 工业·编程
⁄ 共 728字
记得以前面试的时候被问到一个问题:“你平时业余时间有没有读过什么开源的代码,谈谈是如何读的?以及有什么收获”。
问题很好,当时却答得不怎么样,可能那时经历有限,也一直记着这个问题,常常在思考,现在写一些简单体会。
我觉得读代码有几个步骤,刚开始就说去看架构文档,我觉得那是扯蛋,如果你基本没有看过里边的几行代码,架构是看不出来的,文档看过之后,似乎也没太大作用,过后即忘。唯有多花些时间,在代码里来回查...
代码, 软件开发阅读全文
2012-09-01 07:00
⁄ 工业·编程
⁄ 共 846字
一直以来,我都不是太理解这种方式,在 C++函数调用原理理解中,我仅仅是简单的认为,那么做,可能是因为CC平时用的少,而且好看:)所以初始化这样一个不怎么常用的变量,可以让人很快发现。。。。事实上,的确有这样的效果,当Debug时,我看一个变量为CC时的确第一时间就能反应过来,我又犯了一个不可饶恕的低级错误,又忘了初始化了,这点在变量为指针类型的时候更加严重。
但是,在学习过反汇编这么久后...
软件开发阅读全文
2012-08-29 13:05
⁄ 工业·编程
⁄ 共 194字
按F9(设置断点),F5调试,F10单步调试,shift+F5退出调试
F10单语句执行,F11单指令执行,Ctrl+F10执行至光标处;
F9按行设置/取消断点, Alt+F9可按行,按数据或按消息设置断点;
调试时,按Alt+3打开跟踪窗口,Alt+4打开变量窗口,Alt+5打开寄存器窗口,Alt+6打开内存窗口,Alt+7打开堆栈窗口,Alt+8打开汇编指令窗口;
快捷键, 软件开发阅读全文
2012-08-22 23:54
⁄ 工业·编程
⁄ 共 307字
对于很多工程来说,我们不用每一个类都需要自己来写,如果有别人已经编写好的类,我们可以拿过来直接用,但这需要我们把这些文件导入我们的工程中。基于这两天的实验,现总结如下:
1、把希望引入的.cpp 和.h文件复制到你工程中的 src文件夹中
2、在FileView中,右击Source Files文件夹,单击Add Files in Folder...,在你的src中选中要导入的.cpp文件
3、在FileView中,右击Header Files文件夹,单击Add Files in Folder...,...
软件开发阅读全文
2012-08-22 17:49
⁄ 工业·编程
⁄ 共 5071字
1.如何在Release状态下进行调试
Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link标签中选中Generate debug info复选框。
注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效...
软件开发阅读全文
2012-08-21 06:05
⁄ 工业·编程
⁄ 共 2735字
学习内容出处:《Windows网络编程技术》第4章命名管道。 命名管道的基本原理:利用微软网络提供者(MSNP)重定向器。 特点:
跨网络。
可靠的传输。
单向或双向数据通信。
服务端源码,PipeServer.cpp。
// PipeServer.cpp : Defines the entry point for the console application. //
#include "stdafx.h" #include <Windows.h> #include <stdio.h>
//最多创建实例数 #define NUM_PIP...
软件开发阅读全文
2012-08-21 05:48
⁄ 工业·编程
⁄ 共 251字
vs2005引用lib文件有两种方式。
其一:通过#param comment(lib, 'PublicFunc.lib')方式引用。
其二:通过设置工程属性,Configuration Properties->Linker->Input->Additional Dependencies中设置PublicFunc.lib,如图1。
在实际工作中,方式一有所不便。因为用工具编译所有工程文件时,需解析模块间的依赖关系,从而决定编译模块的顺序。
方式一会因PublicFunc模块后编译导致该编译不通过,推荐使用方式二。
lib, 软件开发阅读全文