C++
文章平均质量分 75
berniebd
这个作者很懒,什么都没留下…
展开
-
如何使用CppUnit进行单元测试
一、前言 测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持,在编写实际代码之前,先写好基于产品代码的测试代码。开发过程的目标就是首先使测试能够通过,然后再优化设计结构。测试驱动开发式是极限编程的重要组成部分。XUnit,一个基于测试驱动开发的测试框架,它为我们在开发过程中使用测试驱动开发提供了一个方便的工具,使我们得以快速的进行单元测试。XUnit的成员有很多,如JUnit,Pyt转载 2008-04-07 10:07:00 · 2141 阅读 · 2 评论 -
深入浅出MFC文档/视图架构之框架
从前文可知,在MFC中,文档是真正的数据载体,视图是文档的显示界面,对应同一个文档,可能存在多个视图界面,我们需要另外一种东东来将这些界面管理起来,这个东东就是框架。 MFC创造框架类的初衷在于:把界面管理工作独立出来!框架窗口为应用程序的用户界面提供结构框架,它是应用程序的主窗口,负责管理其包容的窗口。一个应用程序启动时会创建一个最顶层的框架窗口。 MFC提供二种类型的框架窗口:单文档窗口S转载 2008-06-11 11:16:00 · 1728 阅读 · 0 评论 -
深入分析MFC文档视图结构(项目实践)
文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/View Architecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦。然而,虽然我们使用MFC AppWizard就可以很轻松地获得一个支持Document/View Architecture的MFC程序框架,Document/转载 2008-06-11 11:37:00 · 987 阅读 · 0 评论 -
利用MFC的Csocket类实现网络通信
近年来,利用Internet进行网际间通讯,在WWW浏 览、FTP、Gopher这些常规服务,以及在网络电话、多媒体会议等这些对实时性要求严格 的应用中成为研究的热点,而且已经是必需的了。Windows环境下进行通讯程序设计的最基本方法是应用Windows Sockets实现进程间的通讯,为此微软提供了大量基于Windows Sockets的通讯API,如WinSockAPI、WinInetAPI转载 2008-06-16 17:03:00 · 1630 阅读 · 1 评论 -
Visual C++程序设计中的文件操作
各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效的代码。本文对Visual C++中有关文件操作进行了全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行了详细分析。 1. 文件的查找 当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类“转载 2008-06-13 11:38:00 · 795 阅读 · 0 评论 -
SocketAPI,CAsyncSocket,CSocket内幕及其用法
Socket有同步阻塞方式和异步非阻塞方式两种使用,事实上同步和异步在我们编程的生涯中可能遇到了很多,而Socket也没什么特别。虽然同步好用,不费劲,但不能满足一些应用场合,其效率也很低。 也许初涉编程的人不能理解“同步(或阻塞)”和“异步(或非阻塞)”,其实简单两句话就能讲清楚,同步和异步往往都是针对一个函数来说的,“同步”就是函数直到其要执行的功能全部完成时才返回,而“异步”则是转载 2008-06-23 09:49:00 · 846 阅读 · 0 评论 -
vc中字符串和数字转换的函数:atoi,atol,strtod,strtol,strtoul 类型转换
atoi,atol,strtod,strtol,strtoul实现类型转换atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字转载 2008-06-26 15:20:00 · 4689 阅读 · 0 评论 -
IP Address Control 控件的使用
CString IP;BYTE f1,f2,f3,f4;TCHAR temp[10] = "/0";this->m_IPAddress.GetAddress(f1,f2,f3,f4);IP = _itoa(f1,temp,10);IP += _T(.);IP += _itoa(f2,temp,10);IP += _T(.);I转载 2008-07-08 14:59:00 · 1648 阅读 · 0 评论 -
MFC全局变量的定义和使用
我在编程的时候也经常遇到一些错误:gj.obj : error LNK2001: 无法解析的外部符号 "int gg" (?gg@@3HA) gjDlg.obj : error LNK2001: 无法解析的外部符号 "public: static int CgjApp::g_gl" (?g_gl@CgjApp@@2HA) Debug/gj.exe : fatal error LNK1120:转载 2008-09-24 16:52:00 · 1779 阅读 · 0 评论 -
VC的数据类型
我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="女侠程佩君"; char temp[200]; char *buf; CString str; _variant_t v1; _bstr_t v2; 一、其它数据类型转换为字符串 短整型(int) ito转载 2008-09-25 17:02:00 · 783 阅读 · 0 评论 -
vc中CString的使用
通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用CString可以让你对字符串的操作更加直截了当。这篇文章不是CString的完转载 2008-09-26 09:28:00 · 4335 阅读 · 0 评论 -
网络字节顺序和机器顺序什么区别
存在两种字节顺序:NBO与HBO网络字节顺序NBO(Network Byte Order):按从高到低的顺序存储,在网络上使用统一的网络字节顺序,可以避免兼容性问题。主机字节顺序(HBO,Host Byte Order):不同的机器HBO不相同,与CPU设计有关计算机数据存储有两种字节优先顺序:高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序在网络上传输,所以对于在转载 2008-10-29 11:21:00 · 738 阅读 · 0 评论 -
非MFC模式的动态链接库(DLL)文件的编写和调试
在visual studio2008中新建一个项目,选择win32项目下的Win32控制台应用程序,visual studio会创建与项目同名的cpp文件,在项目中添加同名的.h文件在头文件中添加如下语句 #ifndef NEWARRVIALANDDEPARTSTRESSTEST_H #define NEWARRVIALANDDEPARTSTRESSTEST_H ext原创 2008-10-13 13:05:00 · 859 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之文档
1、文档类CDocument 在"文档/视图"架构的MFC程序中,文档是一个CDocument派生对象,它负责存储应用程序的数据,并把这些信息提供给应用程序的其余部分。CDocument类对文档的建立及归档提供支持并提供了应用程序用于控制其数据的接口,类CDocument的声明如下:///////////////////////////////////////////////////////转载 2008-06-11 11:00:00 · 1581 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之文档模板
文档模板管理者类CDocManager 在"文档/视图"架构的MFC程序中,提供了文档模板管理者类CDocManager,由它管理应用程序所包含的文档模板。我们先看看这个类的声明: class CPtrList : public CObject{ DECLARE_DYNAMIC(CPtrList) protected: struct CNode { C转载 2008-06-11 10:43:00 · 2045 阅读 · 0 评论 -
INI文件编程,WINAPI函数WritePrivateProfileString,GetPrivateProfileString
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,转载 2008-07-10 14:10:00 · 2479 阅读 · 0 评论 -
Linux C++ 自学
问题:linux下的C++用的是标准的C++库吗?linux下用的是标准C++库附:Suse linux 使用的C++编译器为g++(gcc)IBM_AIX Unix 使用的C++编译器为ccSun Unix 使用的C++编译器为CC C++在linux下的系统调用是C语言编写的API吗?C语言编写的API,好像没用这种说法!~!改成库更了一些,C++是兼容C的,库也不例外 在linu转载 2008-07-16 14:33:00 · 1687 阅读 · 0 评论 -
C++ 标准IO
我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的 stdio库不同,它从一开始就是用多重继承与虚拟继承实现的面向对象的层次结构,作为一个c++的标准库组件提供给程序员使用。 iostream为内置类型类型对象提供了输入输出支持,同时也支持文件的输入输出,类的设计者可以通过对iostream库的扩展,来支持转载 2008-05-22 12:27:00 · 1724 阅读 · 1 评论 -
VC中radio的用法
先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButton *)转载 2008-06-04 17:10:00 · 1175 阅读 · 0 评论 -
多线程编程之三——线程间通讯
七、线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。 使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。转载 2008-06-10 14:41:00 · 513 阅读 · 0 评论 -
多线程编程之一——问题提出
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000);转载 2008-06-10 13:55:00 · 532 阅读 · 0 评论 -
VC常用数据类型列表
Type Default Size Description转载 2008-06-11 09:57:00 · 630 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之视图
视图类CView 在MFC"文档/视图"架构中,CView类是所有视图类的基类,它提供了用户自定义视图类的公共接口。在"文档/视图"架构中,文档负责管理和维护数据;而视图类则负责如下工作: (1) 从文档类中将文档中的数据取出后显示给用户; (2) 接受用户对文档中数据的编辑和修改; (3) 将修改的结果反馈给文档类,由文档类将修改后的内容保存到磁盘文件中。 文档负责了数据真正在永久介质转载 2008-06-11 11:05:00 · 1193 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之相互关系
1、模板、文档、视图、框架的关系 连载1~5我们各个击破地讲解了文档、文档模板、视图和框架类,连载1已经强调这些类有着亲密的内部联系,总结1~5我们可以概括其联系为: (1)文档保留该文档的视图列表和指向创建该文档的文档模板的指针;文档至少有一个相关联的视图,而视图只能与一个文档相关联。 (2)视图保留指向其文档的指针,并被包含在其父框架窗口中; (3)文档框架窗口(即包含视图的MDI子窗转载 2008-06-11 11:23:00 · 2385 阅读 · 0 评论 -
VC++ Combo Box/Combo Box Ex控件
组合窗口是由一个输入框和一个列表框组成。创建一个组合窗口可以使用成员函数: BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff ); 其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE转载 2008-06-10 11:43:00 · 926 阅读 · 0 评论 -
主要C++流派
1. 经典C++流:类是核心,例程多用C Runtime的,很少用模版,一般是正统教育的结果。 2. 古典C流:基本上当C用,偶尔用用对象,不使用异常,喜欢怀旧。 3. MFC流:秉承MFC的风格,主要使用MFC/ATL对象和Win32 API,不喜欢STL,用很多的宏把IDE的语法提示模块折磨到崩溃。 4. Portable流:以C Runtime和STL为主要工具,使用类和模版,不跨平台毋宁死转载 2008-06-10 11:55:00 · 569 阅读 · 0 评论 -
多线程编程之四——线程的同步
八、线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能转载 2008-06-10 14:45:00 · 457 阅读 · 0 评论 -
watir解决如web页面使用梅花雨calendar日期控件对只读控件的设值问题
由于页面中包含多document,首先需要定位到只读控件所在的frame,之后的操作如下ie.frame(:id,"frameid")...frame(:id,"frameid").document.parentWindow.execScript(js_script)原创 2010-05-12 09:40:00 · 2586 阅读 · 0 评论