对C/C 概念介绍
创始人
2024-06-20 22:21:01
0

对***次接触到C/C++的用户和学者来说,了解C/C++的概念是非常重要的,那么就先说一下什么是C++语言,所谓C++语言:是一种使用非常广泛的计算机编程语言。。。

 如果使用VC6,那么直接用VC6打开VC工程文件,选择Batch Build(***自己对工程参数重新设置一下),然后就可以在源代码包子目录Lib中得到我们需要的库文件。如果使用C/C++,那么用VC8打开VC6工程文件,并按提示直接转换成.net版本。

同样,选择批生成,生成我们需要的库文件。在VC8中编译源代码时会出现编译错误“#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids”,将version("7.0")改为version("8.0")即可。
 
在开发应用程序过程中,我们可能会使用到很多第三方程序库,如这里的CppUnit。为了方便,我们可以建立一个第三方程序库的专用文件夹,并为具体的程序库(如这里的CppUnit)建立子文件夹。然后在VC的Option中分别设置库的头文件路径和库文件连接路径。

如果有Dll文件,则在系统变量PATH中加进DLL文件所在目录,这样,程序运行时就能搜索到该C/C++(注意,只有VC重启后,PATH设置才会对从VC里直接运行的程序生效)。

同样,这里我们也把CppUnit的头文件和库文件路径加到VC的默认搜索路径中。另外,需要指出,一般情况下,Dll文件是需要与生成的程序一同发布的,此时就必须将Dll文件拷贝到Project目录中。此时,可以采取手动方式,也可以在Project的Post-Build Step中添加命令执行拷贝动作。
 
在VC中使用CppUnit进行单元测试时,可以选择CppUnit的控制台测试作界面和图形测试界面。控制台界面简洁,而图形界面较直观,并且借助CppUnit提供的插件可以快速定位到断言失败的地方。一般情况下。#t#

我们使用控制台测试界面来测试Console程序,使用图形测试界面来测试GUI程序,这样测试Project不会影响被测试的Project。由于图形测试界面的易用性,我们可能也希望用它来测试Console程序,此时稍微麻烦一点。下面分别介绍这几种用法(以VC6为例,VC8类似)。

在下面的叙述中,把被测试Project叫做目标Project,把被测试类叫做目标类。使用CppUnit的Console测试界面测试Console程序
1. 创建一个工作区用于开发和测试,然后在该工作区中分别创建两个Project,一个用于开发,另一个用于测试。
 
2. 在测试Project中,设置如下:
(1)设置连接库:cppunit.lib(Release版)和cppunitd.lib(Debug版),或者使用动态链接库版本cppunit_dll.lib、cppunit_dll.dll和cppunitd_dll.lib、cppunitd_dll.dll;
(2)在C/C++Code Generation中设置Use run-time library为Multithreaded Dll(Release版)和Debug Multithreaded Dll(Debug版)。
 
3. 为测试Project添加测试类,假如被测试的目标类为Demo,那么可以定义一个DemoTest的测试类:

  1. class DemoTest: public CppUnit::TestFixture  
  2. {  
  3.     CPPUNIT_TEST_SUITE(DemoTest);  // 参数为本测试类名  
  4.     CPPUNIT_TEST(testFunc);        // 参数为测试函数名,与下面声明的测试函数对应  
  5.     CPPUNIT_TEST_SUITE_END();  
  6.       
  7. public:  
  8.     void setUp() {  
  9.         // 在这里进行测试的初始化工作  
  10.     }  
  11.       
  12.     void tearDown() {  
  13.         // 在这里进行测试完毕后的清理工作  
  14.     }  
  15.       
  16.     void testFunc();  // 测试函数,用来测试目标类的某一个细节  
  17. };  
  18.    
  19. #endif // DEMO_TEST_H  
  20.    
  21. 文件DemoTest.cpp:  
  22. #include "DemoTest.h"  
  23. #include "../Demo/DemoTest.h"  // 这里为要测试的目标类的头文件路径,因为测试时要用到Demo类  
  24. #include <cppunit/extensions/HelperMacros.h> 
  25.    
  26. CPPUNIT_TEST_SUITE_REGISTRATION(DemoTest);  
  27.    
  28. void DemoTest::testFunc()  
  29. {  
  30.     // 这里对Demo类进行测试,可以使用CPPUNIT_ASSERT、CPPUNIT_ASSERT_EQUAL等来断言  

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...