e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 程序开发 >> Visual C教程 >> 让自己编写的DLL加载到 Slot1 >> 教程正文
 
教程搜索
 
 
相关教程
  • 从用户接触到完成需求说明书
  • 使用 UML 为 Web 应用程序构架建模
  • OO三步曲
  • 模式与J2EE
  • Windows CE下串口通信
  • 在 Windows CE 下申请大容量物理内存
  • 自编写CE进程查看程序
  • 对已发表的文章中错误的总结
  • Platform Builder之旅(一)
  • Platform Builder之旅(二)
  • Platform Builder之旅(三)
  • Platform Builder之旅(四)
  • 简单PID数字控制的VC程序实现
  • Platform Builder之旅(五)
  • Platform Builder之旅(六)
  • 让自己编写的DLL加载到 Slot1
 
 

图文教程


  • 将其他Email邮件转移到Gmail邮箱中

  • Vista破解TCP/IP后进不了系统咋办

  • Vista下用DriveSpacio查看磁盘空间

  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”
 
 
赞 助 商
 
 
让自己编写的DLL加载到 Slot1
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9
让自己编写的DLL加载到 Slot1

作者:付林林

将自己编写的DLL包含到内核当中并不是难事,但是这并不意味着你的DLL能够加载到Slot 1。可能细心的你已经发现,当你用应用程序加载你自己手工包含到内核中的DLL时,这个DLL一定是加载到调用进程的地址空间中,而不是系统DLL的特有的地址空间Slot 1,即使你在project.bib文件中加了文件属性NK或者S。也许你不会介意,认为只要能运行就OK。但是如果DLL加载到Slot 1,那么可用的进程地址空间就节省了。这对于本来就拥挤的进程地址空间来说是个好事。我早就注意这个问题了,可是最近才在MSDN的Knowledge Base中发现一篇文章,介绍如何将DLL加载到Slot 1。

只要符合下面两个条件,DLL就可以加载到Slot 1:

  1. 这个DLL包含在*.bib文件的MODULES中,且不能具有压缩属性。
  2. 在内核编译期间,一定要存在一个和DLL同名的.rel文件,且处于同一个目录下。

对于第一个条件,很容易实现,在PB中包含的模块默认就是不压缩的。如果你不会加入DLL到.bib中,可以参考我以前写的文章。对于第二个条件,也容易实现,只要在编译前在链接选项中加入一个选项和修改一个选项即可。如果是EVC,在"link"-"project options"中找到"/incremental",改为"/incremental:no",如果原来是就不用改了。接着添加一个选项"/savebaserelocations:filename.rel",其中filename指的是你编译的DLL的主文件名。比如我要编译的DLL为abc.dll,那么在此添加"/savebaserelocations:abc.rel"。编译后就能找到这个文件。记住一定要把这个文件和DLL放在同一个目录下,这样PB才能找到这个DLL对应的.rel文件。至于.rel文件的内容,用记事本就能查看,也能看的懂。

到此这篇文章的内容就讲完了。另外我遇到一个问题,想麻烦所有正从事CE开发的网友,问题如下:

Windows CE允许PB开发者创建一个可信任的环境。其中有一种机制:在定制的内核启动后,只允许加密过的EXE、DLL运行,而非加密的EXE、DLL运行会失败。简略的说明这种机制原理,就是利用内核在加载EXE、DLL之前,先运行验证函数来验证EXE、DLL是否具有数字签名,并且签名是否合法。如果合法就可以运行了,不合法就不加载执行。验证函数能够访问一个全局Public Key,在EXE、DLL中包含Private Key。其中PB工具"signfile.exe"用于将数字签名附加到符合PE格式的EXE、DLL上。

这种机制正是我需要的,我想它也是很多PB开发者非常感兴趣的。可是我查看了帮助文档,卡在了最后一个环节"signfile.exe"上。需要了解加密的基本知识,而帮助文档在加密方面讲的不细致,我又不了解,所以在此请了解这方面的网友指教,大家可以在CE的帮助文档中搜索标题为"signfile.exe"的文章,如果您了解,希望能够发邮件赐教,本人不胜感激。

写作时间:2004-10-28

未经本文作者同意,不准擅自转载本篇文章。联系作者请邮至windowsce@tom.com或fllsoft@sina.com

  • 上一篇教程: CE下中文输入法编辑器
  • 下一篇教程: Platform Builder之旅(六)
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.