sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
阅读:1612回复:4

PB里面,如何根据一个环境变量找到相对应的组件呢?

楼主#
更多 发布于:2008-08-04 17:52
比如 DIRECTX_MODULES_DIRECTDRAW

哪位能告诉我方法?

感谢
[url]http://sniper167.bokee.com[/url]
high
论坛版主
论坛版主
  • 注册日期2002-08-10
  • 最后登录2010-07-26
  • 粉丝4
  • 关注0
  • 积分60分
  • 威望655点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分60分
沙发#
发布于:2008-08-04 18:19
chenyq2008.spaces.live.com
-----------------------------------------------------------
sysgen环境变量到底怎么产生作用的?
在使用pb的时候,我们增加一个feather,事实上只是增加了这个feather对应的sysgen变量而已,如此简单. Sysgen变量本质是一个环境变量,它怎么可以影响代码,影响镜像的生成,影响注册表等所有相关的东西?比如,我增加一个usb鼠标功能,对应的是sysgen_usb_hid_mouse.你可以在pb的图形界面下从catalog窗口中add to os designed,也可以在环境变量中直接增加. 这背后是怎么回事?

回忆我对linux浅薄了解.linux下面事实上也是有这样一个神奇的东西.大概叫什么config的东西,用户可以在文本或者图形界面menuconfig下配置.然后就可以影响代码了.我当时的了解是,这事情是有幕后黑手make工具来实现的,它得到这些配置后,强行在源代码前插入一个大概叫config.h这样的头文件,从而环境变量变成了c和c++能够识别的宏变量了!

对于wince呢?其实也是类似的.这个幕后黑手是winceos.bat等这些批处理文件,他们根据环境变量设定,最后产生了一个叫做ceconfig.h的头文件.然后CeFilter.exe根据环境变量和宏变量去过滤代码,注册表,bib文件等等.于是我们可以看到大量的开关,类似这样

如果是宏,大概呈现为这样形式:@CESYSGEN IF CE_MODULES_NK

如果是环境变量,呈现为这样形式:IF IMGPROFILER !

有了上面的了解后,阅读bib,reg等等文件就不会再困惑了.
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-08-05 09:59
有了上面的了解后,阅读bib,reg等等文件就不会再困惑了.
---------------------------------------------------------------------------
说实话,我看了上面的东西,还是困惑,我还是没把DIRECTX_MODULES_DIRECTDRAW对应的feather找出来
[url]http://sniper167.bokee.com[/url]
qinlei_sz
驱动小牛
驱动小牛
  • 注册日期2007-03-24
  • 最后登录2012-12-18
  • 粉丝0
  • 关注0
  • 积分1090分
  • 威望510点
  • 贡献值0点
  • 好评度145点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-08-06 16:24
gooogleman
驱动牛犊
驱动牛犊
  • 注册日期2007-03-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望179点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-08-11 10:02
版主说的好,顶
WINCEqq 群39063007
游客

返回顶部