子敬正在创造自己的人生
需求有轻重缓急,功能有可控不可控。 需求有版本有截止(否则会无休无止),功能不可控变为可控。 集中兵力消灭敌人有生力量,集中优势兵力消灭敌人有生力量。

随笔分类 -  brew/c

1
brew 编程 c
在可部署到brew真机上的程序包构建完之后又要如何将该程序包发布到真机上呢
摘要:1、到brew官网上去申请含有classid的bid文件,以及.sig文件2、根据申请到的bid文件重新生成mif文件.3、将mif文件部署到brew真机上的mif文件夹下.4、在真机上的brew文件夹下以你的应用的英文名称创建一个文件夹。将你的应用程序相关的.mod,.sig, bar文件以及其他相关的资源文件复制到该文件夹下5、如果要更详细的资料,我这里有一个文档噢..有需要的发邮件到我的邮箱silentjesse@gmail.com 阅读全文
posted @ 2013-08-11 20:53 silentjesse 阅读(275) 评论(0) 推荐(0)
在你开发完brew应用之后 ,你又如果将brew应用由编译成可以部署到brew真机上的程序包呢
摘要:参考自:http://blog.csdn.net/feimor/article/details/6239281一、准备工作(安装工具)先安装Visual C++ 6.0,再安装BREW SDK v3.1.5和BREW SDK Tools 1.1.1 SP02。这样的安装顺序,会在VC6的环境下,加上Brew的一些特征:1、在VC的File-New菜单项所弹出的New窗口的Projects标签页,会多一项“Brew Application Wizard”,它是个向导,在创建Brew应用(Applet)的时候使用。2、在VC的Tools-Customize...菜单项所弹出的Customize窗口 阅读全文
posted @ 2013-08-11 20:46 silentjesse 阅读(624) 评论(0) 推荐(0)
brew faq:call ISHELL_GetJulianDate always return 1980 1 6
摘要:假设你当时系统的时间为20130804000000,那么如果你将系统的时间改为20140104000000,那么ISHELL_GetJulianDate 将返回20140104000000。但如果你将系统时间改为小于20140104000000的一个时间点,例如:20131204000000,那么ISHELL_GetJulianDate 将返回给你the device reference time(January 6 1980) 阅读全文
posted @ 2013-08-04 16:47 silentjesse 阅读(210) 评论(0) 推荐(0)
brew 接口的原理
摘要:请查看相关文档的第9章该文档可以csdn silentjesse帐号下的资源去下载http://download.csdn.net/detail/silentjesse/5859077 阅读全文
posted @ 2013-08-02 16:22 silentjesse 阅读(241) 评论(0) 推荐(0)
在懂得BREW接口的原理之后, 那么该知道BREW接口是如何声明和实现了
摘要:参考:http://blog.csdn.net/peteryxk/article/details/1584514首先介绍几个用到的宏定义:l#define VTBL(iname)iname##Vtbl例:VTBL(IWindow)将被替换为IWindowVtbl。从名字的后缀可以看出,它是模拟C++的虚函数的函数表。表中的每一项代表了一个函数指针。通过给指针赋予不同的值,便可以得到同一接口的不同实现。l#define AEEVTBL(iname) iname##Vtbl该宏的作用和第一个宏完全一样。唯一不同的是第一个宏用于第一种风格的接口声明,而AEEVTBL用于第二种风格的接口的声明。见下。 阅读全文
posted @ 2013-08-02 16:20 silentjesse 阅读(403) 评论(0) 推荐(0)
brew 中的时间格式转换
摘要:char * pACNowStr = NULL; JulianType jtNow; ISHELL_GetJulianDate(pIShell, 0, &jtNow); pACNowStr = (char *)MALLOC(12* sizeof(char)); SPRINTF(pACNowStr,"%04i%02i%02i%02i%02i%02i",//%02i表示将整数格式化为2位字符不够则在左边填补0 jtNow.wYear, jtNow.wMonth, jtNow.wDay,... 阅读全文
posted @ 2013-08-02 14:50 silentjesse 阅读(286) 评论(0) 推荐(0)
brew 的 调度工具DBGPRINTF 和 c语言的 printf
摘要:在官方的文档中是这样备注DBGPRINTFPrototypevoid dbgprintf(const char *pszFormat,...);DescriptionThis function is used to output debugging information. Since this function may be implemented in different ways on different platforms, care must be taken with this function to get useful results. On the Windows SDK, 阅读全文
posted @ 2013-08-01 17:02 silentjesse 阅读(1007) 评论(0) 推荐(0)
宏定义中的 # 和 ##
摘要:工作需要,被迫看了一段老外编写的C++代码,开始被老外绕了一通,最后找到了原因.老外真是牲口,妈的啥技巧都用,查了一下书知道了几个#号在#define宏定义中的特殊用法,不过这东西好像在特殊情况下的确会有些用途,不防分享一下,我也是从网上抄来的,不好意思:1. #:在宏展开的时候会将#后面的参数替换成字符串,如:#define p(exp) printf(#exp);调用p(asdfsadf)的时候会将#exp换成"asdfsadf"2. ##:将前后两个的单词拼接在一起。例如《The C Programming Language》中的例子:#define cat(x,y) 阅读全文
posted @ 2013-07-31 14:47 silentjesse 阅读(316) 评论(0) 推荐(0)
函数名与函数指针
摘要:一、通常的函数调用一个通常的函数调用的例子:/* 自行包含头文件 */void MyFun(int x); /* 此处的声明也可写成:void MyFun(int) */int main(int argc, char* argv[]){ MyFun(10); /* 这里是调用MyFun(10) 函数 */ return(0);}void MyFun(int x) /* 这里定义一个MyFun函数 */{ printf("%d\n",x);}这个MyFun函数是一个无返回值的函数,它并不“完成”什么事情。这种调用函数的格式你应该是很熟悉的吧!看主函数中调用MyFun函数的书写 阅读全文
posted @ 2013-07-30 15:55 silentjesse 阅读(334) 评论(0) 推荐(0)
c语言 struct 的初始化
摘要:struct数据有3中初始化方法:顺序,C风格及C++风格的乱序。1)顺序这种方法很常见,在一般的介绍C的书中都有介绍。顺序初始化的特点是: 按照成员定义的顺序,从前到后逐个初始化;允许只初始化部分成员;在被初始化的成员之前,不能有未初始化的成员。eg:struct User oneUser = {10, "Lucy", "/home/Lucy"}; 2)乱序(C风格)顺序的缺陷是必须按成员定义的顺序逐个初始化,不能间隔。而乱序的方式则很好的解决了这个问题,因为这种方式是按照成员名进行。eg:struct User oneUser = { .na... 阅读全文
posted @ 2013-07-30 15:12 silentjesse 阅读(28500) 评论(0) 推荐(0)
c++虚函数表 Brew VTBL
摘要:参考:http://blog.csdn.net/haoel/article/details/1948051/BREW VTBL:http://blog.chinaunix.net/uid-517401-id-353373.html 阅读全文
posted @ 2013-07-29 23:03 silentjesse 阅读(244) 评论(0) 推荐(0)
变量声明和定义的区别
摘要:我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益)变量的声明有两种情况:1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。前者是“定义性声明(defining declaration)”或者称为“定义(definition)”,而后者是“引用性声明(referncing declaration)”,从广义的角度来讲声明中包含着定 阅读全文
posted @ 2013-07-27 10:39 silentjesse 阅读(373) 评论(0) 推荐(0)
C++ 对象间的赋值与拷贝构造函数
摘要:1、对象间的赋值/***A.h文件***/#pragma onceclass A{public: int va; A(void); A(char* name); A(const A& a); virtual void print(); char* name; void setVa(int va){ this->va = va; }public: ~A(void);};/****A.cpp文件******/#include "StdAfx.h"#include "A.h"#include using namespace std;... 阅读全文
posted @ 2013-07-27 10:10 silentjesse 阅读(6009) 评论(0) 推荐(1)
c #include "" 和 <>
摘要:先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h等用这个方法。而""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。When writing your C program, you can include files in two ways. The first way is to surround the file you want to include with the angled brackets . This method of in 阅读全文
posted @ 2013-07-25 15:26 silentjesse 阅读(780) 评论(0) 推荐(0)
module、applet
摘要:Each Module is developed as a standalone Windows DLL.Each module can contain one or more applets, and must have a corresponding MIF associated with it 阅读全文
posted @ 2013-07-25 14:45 silentjesse 阅读(194) 评论(0) 推荐(0)
develop brew app from here
摘要:https://brewx.qualcomm.com/brew/sdk/download.jsp?page=dx/en/brew31/ad/tl/overviewthe email is silentjesse@gmail.com先根据programming_primer 然后再根据BREWProgrammingConcepts了解相关的概念 阅读全文
posted @ 2013-07-23 19:09 silentjesse 阅读(214) 评论(0) 推荐(0)
c语言的指针 强制类型转换
摘要:强制类型转换分为两种情况:情况1、用malloc分配内存时如:Test2 *test2 = (Test2 *)malloc(sizeof(Test2));2、将一个已知指向某类型的指针转换成其他类型的指针如:typedef struct Test0{ int a ; //int c;} Test0;typedef struct Test1{ Test0 *test0;} Test1;typedef struct Test2{ Test1 test1;//执行通过 int b; int a; //Test1 test1;//执行无法通过} Test2;v... 阅读全文
posted @ 2012-12-03 14:17 silentjesse 阅读(9319) 评论(0) 推荐(0)
c语言的声明__它是指针?变量?还是函数呢?
摘要:在c语言中,一个声明你是否都能很明确的知道他是什么类型?它肯定是两大类型:变量或者函数。但需要更具体点:1、变量分为:非指针类型的变量、指向变量的指针类型的变量(这个指针变量指向的可能是非指针变量,也可能是指针变量)、指向函数的指针类型的变量2、函数:返回非指针类型的函数、返回指针变量的函数所以在c语言里面,一个声明你需要清晰的知道该声明是上面综述的5种类型中的哪一种类型。要怎么进行分析、要根据什么来进行分析。下面有几个声明,请先自己分析一下。---------------------------------------------------------------int p;int *p; 阅读全文
posted @ 2012-11-30 15:31 silentjesse 阅读(597) 评论(0) 推荐(0)
c中的字符串
摘要:关于这个请参考《c++ primer》中的2.2节和4.3节。it's very clear像 42 这样的值,在程序中被当作字面值常量。称之为字面值是因为只能用它的值称呼它,称之为常量是因为它的值不能修改。每个字面值都有相应的类型,例如:0 是 int 型,3.14159 是 double 型。只有内置类型存在字面值,没有类类型的字面值。因此,也没有任何标准库类型的字面值。字符字面值可打印的字符型字面值通常用一对单引号来定义: 'a' '2' ',' ' ' // blank这些字面值都是 char 类型的。在字符字面值 阅读全文
posted @ 2012-11-24 20:30 silentjesse 阅读(485) 评论(0) 推荐(0)
在brew开发中遇到的一些问题
摘要:由于公司要开发一个定位的软件,本来是想拿给别人开发,但又因为brew手机有很多型号很难让别人一个一个的适配。所以只好自己来摸索了,对C又十分的陌生只好慢慢的动起来^--^以下是我遇到的几个问题:一、乱码问题1、直接在代码中定义了两个变量const AECHAR * dlgCaption = "dialog demo";const AECHAR * dlgText = "this is a dialog";然后显示到模拟器的屏幕上但显示的是乱码,找了资料没找到办法,最后回想起从高通下载到的资料"Programming_Primer.pdf&quo 阅读全文
posted @ 2012-11-23 14:06 silentjesse 阅读(196) 评论(0) 推荐(0)

1