操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

BREW学习笔记

2007-9-18 网友评论 0 条 点击进入论坛

  1、可以用Visual Studio C++ 6.0或者.net来开发,具体使用可以参考brew文档,特别是.net的需要多一些步骤来设置工程的属性。

  2、必须要有bid文件,放在和dll同一目录下, bid文件中包含的是brew应用程序的classid, 可以使用mif编辑器来生成

  3、mif文件名要和工程文件名一致,而且要跟工程文件所在的目录放在同一级

  4、资源编辑器会自动生成<文件名>.bar和<文件名>_res.h两个文件,并要放在和dll同一目录下。在程序中需要将_res.h包含进去

  5、在_res.h头文件中除了定义的字符串、控件等资源外,还自动定义一个字串表示该资源文件名称。如:#define BREWMENU1_RES_FILE "brewmenu1.bar"

  6、projectname.c中包含AEEAppGen.h和AEEModGen.h,另外根据具体应用中用到的接口加入相应的头文件,如用菜单的话加入AEEMenu.h等。

  7、HandleEvent事件可以自行定义如:Mymenu_HandleEvent,要作为初始函数AEEClsCreateInstance中调用AEEApplet_New的参数传入,这样应用程序启动后就能进入该事件作为消息循环处理。

  8、boolean AEEApplet_New(int16 nSize,

  AEECLSID clsID,

  IShell * pIShell,

  IModule * pIModule,

  IApplet **ppobj,

  AEEHANDLER pAppHandleEvent,

  PFNFREEAPPDATA pFreeAppData)

  函数的ppobj是返回参数, *ppobj指向有效的AEEApplet结构

  在实际开发中,一般自定义一个结构体,其中第一项必须是AEEApplet类型的变量,后边的变量可以将可能用的接口都封装起来,然后将该自定义结构体用于程序中。

  例子:

  定义结构体

  typedef struct _CHelloBrewApp

  {

  AEEApplet a; // 强制写到第一项,这是必须的,因为AEEApplet_New函数返回的*ppobj是指向一个AEEApplet的一个指针,所以AEEApplet类型必须放在结构体首位。

  AEERect m_rScreenRect; // Screen Rectangle

  IMenuCtl * m_pMenu; // Main Menu

  IMenuCtl * m_pList; // List Menu

  AEECallback m_rSaveReportCB; // Callback

  AEECallback cbkLookup;

  AEEDNSResult dnsresult;

  } CHelloBrewApp;

  在初始化中使用

  int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * pMod,void ** ppObj)

  {

  CHelloBrewApp * pApp=NULL;

  if(AEEApplet_New( sizeof(CHelloBrewApp), // 注意这里是结构体的大小

  ClsId, // Our class ID

  pIShell, // Shell interface

  pMod, // Module instance

  (IApplet**)ppObj, // 返回指向AEEApplet的指针

  (AEEHANDLER)BrewMenu_HandleEvent, // 自定义的事件处理函数

  NULL)) // 没有释放函数

  return(AEE_SUCCESS);

  pApp = ( CHelloBrewApp*) *ppObj; //强制转换并赋予CHelloBrewApp实例

  return (EFAILED);

  }

  9、error C2082: 形参“AEEClsCreateInstance”的重定义 ,这种错误一般是由于前边的函数声明部分有的没有用分号结束。

  10、EVT_COMMAND是从各种控件发出的命令处理,如选择某个菜单项IDC_ADD_VIEW,那么EVT_COMMAND可能就是IDC_ADD_VIEW

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46473 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail