C++
文章平均质量分 64
lusonglin3g
记录程序员的点点滴滴
展开
-
(转)C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不原创 2009-08-27 09:04:00 · 404 阅读 · 0 评论 -
深入BREW接口机制
初学Brew时,最烦人的就是接口的定义了,一大堆的宏,让人不知所云。这里,将以helloworld为例,我们一步一步揭开它的神秘面纱。1.helloworld:typedef struct _helloworld { AEEApplet a ; //第一个成分必须是 AEEApplet AEEDeviceInfo DeviceInf原创 2009-08-31 10:18:00 · 577 阅读 · 0 评论 -
Brew ARM makefile 经验
这篇是基于QC的Brew平台编译其ARM版target的makefile的经验: 1.在AMOI的ADS1.2的基础上,请确认系统环境变量中存在以下变量(否则手工添加): ARMHOME c:/apps/ads120 ARMDLL c:/apps/ads120/bin ARMCONF c:/apps/ads120/bin ARMINC c:/apps/ads12原创 2009-08-31 10:19:00 · 885 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不原创 2009-08-31 10:47:00 · 359 阅读 · 0 评论 -
tuxedo常用命令
这是我在维护和开发tuxedo时的学习笔记1.服务程序的入口参数--- TPSVCINFO2.服务程序返回结果--- tpreturn()3.编写客户端进程buildclient -w -o simpcl -f simpcl.c4.编写服务端进程buildserver -o simpserv -f simpserv.c -s ADD_A -s ADD_B5.作成系统配置文件原创 2009-08-31 15:46:00 · 4465 阅读 · 0 评论 -
C语言的宏定义
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义:1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsi原创 2009-08-31 10:05:00 · 415 阅读 · 0 评论 -
BREW SDK的组成
BREW SDK中包含了一组工具和组件,应用程序开发者可以通过这些工具和组件高效、快速的开发出多种多样的应用程序,这些工具和组件包括: 1、BREW AEE。BREW AEE是一个可扩展的面向对象的应用程序开发和执行环境,它提供了一个使用C/C++开发应用程序和共享模块的平台,同时它采用了类似Windows等操作系统的事件驱动程序运行方式。 2、BREW模拟器(Em原创 2009-08-31 10:10:00 · 844 阅读 · 0 评论 -
BREW 设备文件编辑器
BREW模拟器通过模拟设备文件来模拟真实的应用程序运行的硬件平台和软件平台环境,之所以能够实现这种模拟方式的关键在于设备文件的存在。而编辑设备文件的工具就是BREW Device Configuratior,也就是设备文件编辑器。通常情况下设备文件编辑器只对OEM用户提供安装和下载,设备文件则是通过OEM设备生产厂商提供给BREW应用程序开发者。这样可以保证每个模拟设备的信息是准确的。原创 2009-08-31 10:16:00 · 502 阅读 · 0 评论 -
nohup命令详解
Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:/usr/local/mysql/bin/mysqld_safe --user=mysql &但是加入我们很多程序并不象mysqld一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 & 结尾,但是如果终端关闭,那么程序也会被关闭。但是原创 2009-08-31 10:29:00 · 1146 阅读 · 0 评论 -
《深入BREW开发》——第七章 创建新的BREW应用程序
第七章 创建新的BREW应用程序 在第六章中,我们介绍了Applet和模块的相关内容,并且熟悉了BREW开发环境,那么现在是开始创建一个属于我们自己的应用程序的时候了。在BREW中创建应用程序最简单的方式是,通过BREW在Visual Studio C++环境中的应用程序向导。通过向导,可以一步一步的让我们构建成功开发BREW应用程序所需要的组件。接下来我们就详细的介绍一下BREW原创 2009-09-11 11:30:00 · 1953 阅读 · 0 评论 -
C++堆、栈、自由存储区、全局/静态存储区和常量存储区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,原创 2009-09-11 15:49:00 · 515 阅读 · 0 评论 -
C++虚函数与虚函数表
概念: 虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的,简称为V-Table。学习虚函数的作用: 理解C++实现多态的机制、解决了继承、覆盖的问题。以下摘抄自:http://www.cppblog.com/xczhang/archive/2008/01/20/41508.html一般继承(无虚函数覆盖)下面原创 2009-09-11 16:13:00 · 628 阅读 · 0 评论 -
VS2005调试错误
1.VS2005调试时出现:无法启动程序"C:/PROGRA~1/MOZILL~1/FIREFOX.EXE". 解决方法:重启PDA,重新打开VS20052.fatal error LNK1169: 找到一个或多个多重定义的符号dllmodul.obj : error LNK2005: 已经在 packet.obj 中定义 解决方法 1.在.h里的函数声明前加 inline2.在项目->属性原创 2009-09-11 17:46:00 · 1918 阅读 · 0 评论 -
BREW应用的c++实现注意点
做过BREW开发的都知道,不论是用IWINDOW还是StateMachine,都是应用的C语言,而且编译器也是采用的C编译器,而对于具有优良思想的面向对象的C++语言却应用的不多。 其实BREW开发是完全支持C++语言的。从VC6.0的调试器来说吧,肯定支持C++语言了,对于ARM或者GCC来说,也是有可用的C++编译器,而且任何支持BREW的手机都可以运行通过ARM或者GCC编译连接出来的原创 2009-09-13 16:36:00 · 582 阅读 · 0 评论 -
网络socket编程指南
介绍 Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措?等等… 好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解 C 语言并想穿过网络编程的沼泽,那么你来对地方了。/////////////////////////////////原创 2009-09-25 17:46:00 · 483 阅读 · 0 评论 -
BREW 记录器(Logger)
与BREW应用程序下载工具一样,BREW记录器也是一个BREW设备与PC连接的工具。BREW记录器的作用是获取在BREW设备中运行的应用程序的调试信息,这些调试信息是通过BREW助手函数DBGPRINTF输出的。通过BREW记录器我们可以捕获应用程序在运行时所输出的调试信息,这些信息在模拟器环境下开发时,也会从Visual Studio的输出窗口中输出。这些输出的信息会以记录的形式出现在屏幕上,您原创 2009-08-31 10:17:00 · 496 阅读 · 0 评论 -
BREW 应用程序下载器
在模拟器中开发完成应用程序并生成可以在设备上运行的二进制(.mod)文件之后,我们需要一种能够将应用程序下载到BREW设备中去测试的工具。这个工具就是BREW Application Loader,也就是应用程序下载器。 为了使用BREW应用程序下载器,我们需要首先从高通网站获取一个签名文件,这个签名文件通常以(.sig)作为扩展名。当我们安装小程序的时候,我们将需要将MIF文件、原创 2009-08-31 10:17:00 · 827 阅读 · 0 评论 -
BREW 资源文件编辑器
BREW资源编辑器允许我们创建应用程序中使用的对话框、字符串、二进制数据以及文件对象。我们还可以使用资源编辑器创建控件,如:菜单、列表、日期选择器以及计时器等。 如果创建的应用程序需要在不同语言的BREW设备上运行,这种资源文件的管理方式将十分有用。资源文件编辑器的操作界面如图7.5所示。图7.5 资源文件编辑器 字符串资源元素是一个字符数组,这些字符可以是Unicode原创 2009-08-31 10:15:00 · 727 阅读 · 0 评论 -
基于Tuxedo中间件的接口方案
TUXEDO是专业的消息服务器,可以自动完成消息的缓存,不会受到线路故障的影响,进行数据交换的程序,只需要把消息发送给TUXEDO就可以退出,由TUXEDO保证一定把数据送到对方。当网络线路出现故障时,TUXEDO会自动保存信息并不断检测线路,当通讯恢复时,自动恢复被中断的消息传输,可以自动保证消息传输的完整性。传输使用的数据格式为XML。 系统A、B通过Tuxedo交易中间件完成数据原创 2009-08-27 18:10:00 · 2002 阅读 · 1 评论 -
BREW系统的组成
整个BREW系统由开发平台、运行平台和服务器三个要素组成。开发平台就是我们所使用的BREW SDK,用来在PC端开发可以在运行平台运行的程序。运行平台就是指可以运行BREW应用程序的移动通讯设备上的BREW运行环境,它的核心是BREW的Porting Kit。服务器是连接开发和运行平台的一个“连接器”,开发平台所开发出的BREW应用程序放在服务器上,以便于运行平台的用户通过无线通讯网络下载应用程序原创 2009-08-31 10:08:00 · 598 阅读 · 0 评论 -
BREW环境
BREW是一个可扩展的、面向对象的应用程序开发和执行环境,它使用C/C++语言进行开发。同时,BREW还被设计成了一个所见即所得开发系统。BREW支持应用程序和共享模块,应用程序和模块做为独立的DLL开发,运行时由模拟器载入。共享模块中可以包含功能模块,例如开发游戏时,可以将增强功能的图形接口进行重新封装,做为应用开发中的接口使用,这些扩展接口可以同BREW标准接口一样在应用程序中使用。BRE原创 2009-08-31 10:11:00 · 485 阅读 · 0 评论 -
brew真机测试
乍一看来,在一个BREW设备上运行我们的应用程序是一件十分浪费时间的事情,但是在一个真实的硬件环境中运行我们的应用程序是十分重要的,因为这样做可以让我们检测到应用程序在模拟器中没有遇到的错误,尤其是在我们自然不自然的使用Visual Studio库函数的时候。不过不幸的是,让我们的应用程序运行在一个BREW设备上,并不是一件轻松的事情,因为我们必须联系高通公司的工程师去获得我们所需要的BREW设备原创 2009-08-31 10:12:00 · 819 阅读 · 0 评论 -
BREW事件
通常,在我们的应用程序中必须处理以下的几个事件: 1、EVT_APP_START事件。在应用程序启动时,我们在应用程序中注册的事件捕获函数将会接收到这个事件,这表示我们的应用程序已经开始运行了。在我们的应用程序中,可以在这个事件中进行创建接口,或者分配内存空间等操作。 2、EVT_APP_STOP事件。在我们的应用程序结束时将接收到这个事件,表示应用程序已经停止运行原创 2009-08-31 10:13:00 · 496 阅读 · 0 评论 -
BREW模拟器
BREW模拟器用于模拟选定的BREW设备,使得我们可以加载BREW环境下开发的测试小程序和类。模拟的BREW 设备可以使用各种屏幕、字体、键盘、可用内存量、支持的语言和其它参数。在模拟过程中,模拟器将在PC显示器上打开设备的图像。通过点击对应设备按键的图像区域,可以对要模拟的Applet提供按键输入,同时Applet生成屏幕输出显示在设备图像的屏幕区域。BREW模拟器还可以通过鼠标事件模拟触摸屏设原创 2009-08-31 10:16:00 · 1550 阅读 · 0 评论 -
Brew ARM makefile 经验
这篇是基于QC的Brew平台编译其ARM版target的makefile的经验: 1.在AMOI的ADS1.2的基础上,请确认系统环境变量中存在以下变量(否则手工添加): ARMHOME c:/apps/ads120 ARMDLL c:/apps/ads120/bin ARMCONF c:/apps/ads120/bin ARMINC c:/apps/ads120/includ原创 2009-08-31 10:32:00 · 621 阅读 · 0 评论 -
浅谈C中的malloc和free
在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用—— 就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助!原创 2009-08-31 10:00:00 · 580 阅读 · 0 评论 -
Make File符号说明
关键词用途define定义一个“数据包”,是用enddef做结尾,可以包含多行的命令。ifeq/ifneq条件判断,可以搭配else使用,endif结尾。原型:ifeq(Arg1,Arg2)。ifdef/ifndef变量是否定义的条件判断,可以搭配else使用,endif结尾原创 2009-08-31 10:06:00 · 466 阅读 · 0 评论 -
BDS系统
BREW三要素之间,BDS处于中心地位,而且也承担了许多关于BREW的幕后工作。BDS主要是由运营商主导的一个BREW下载的控制中心,其主要的任务是维持整个BREW产业生态链的生存环境。虽然BDS对于BREW技术本身没有多大的意义,但是,它确是BREW产业生存的核心内容。通过对它的了解,我们可以知道BREW的地位和用途,这样也可以反过来影响我们对BREW的理解。现在我们就来看看BDS系统的内部结构原创 2009-08-31 10:09:00 · 4504 阅读 · 0 评论 -
BREW设备系统架构
BREW设备是整个BREW产业链中的终点,为整个产业输送资金血液,整个产业的生存都取决于BREW设备。BREW设备是BREW的运行平台,这个平台的核心是BREW Porting Kit,也就是支持BREW应用程序运行的软件库和资源的集合,是BREW赖以生存的土壤。BREW设备的系统架构如图5.3所示:图5.3 BREW设备系统架构 在BREW内部,分为OEM和AEE层。AE原创 2009-08-31 10:09:00 · 811 阅读 · 0 评论 -
BREW SDK的目录结构
BREW目录根目录SDK下主要包含以下几个文件夹: 1、bin。在此目录下包含了BREW在Windows环境下运行的可执行文件和数据文件。在子目录“bin/DataFiles”下,包含了BREW模拟器使用的声音文件和声调数据库。在“bin/en”目录下包含了BREW系统本身在英文模式下所使用的资源文件,我们还可以指定其他语言的资源文件。这些资源文件根据所模拟的实际BREW设备的不同原创 2009-08-31 10:10:00 · 1161 阅读 · 0 评论 -
BREW接口
与大多数面向对象的平台一样,BREW平台中的各种接口均继承自一个通用的接口。图7.2 列举出了一部分BREW接口的继承关系: 图7.2 BREW接口继承关系 图7.2中列出了BREW接口中一部分具有继承关系的接口,这些列出来的接口只是BREW众多接口中的一小部分,不过确是最常用的一部分接口。从图的左边到右边,按照箭头方向依次是从基类接口到派生接口。派生接口的实例可以调用原创 2009-08-31 10:14:00 · 459 阅读 · 0 评论 -
BREW MIF编辑器
每一个BREW应用程序(准确地说是每一个模块)都有对应的MIF文件,用来描述该模块中每一个应用程序的信息,如Class ID、图标、名称等等,MIF编辑器就是用来编辑MIF文件中这些内容的。在BREW MIF编辑器中可以创建MFX和MIF文件,MFX是开发 MIF 过程中使用的XML格式的中间文件。MIF是一种从MFX文件编译而成的特殊类型的BREW资源文件,其中包含有关BREW模块 (MOD)文原创 2009-08-31 10:15:00 · 959 阅读 · 0 评论 -
MFC框架程序
在普通MFC程序中是没有WinMain函数的,它由编译器在程序编译是再连接进来,可以在Program Files/Microsoft Visual Studio/VC98/MFC/SRC中找到它的定义文件APPModul.cpp找到_tWinMain函数.、_tWinMain 实际上是一个宏 #define _tWinMain WinMain.接着视频讲解了MFC程序的执行顺序.其实也原创 2009-11-10 16:32:00 · 945 阅读 · 0 评论