中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 硬件与嵌入开发
让自己编写的DLL加载到 Slot1
作者:未知 时间:2005-07-20 14:22 出处:VC知识库 责编:chinaitpower
              摘要:让自己编写的DLL加载到 Slot1

让自己编写的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

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有