改变vfp可执行文件要的运行库位置和文件名计算机二级考试

文章作者 100test 发表时间 2009:04:30 08:14:49
来源 100Test.Com百考试题网


  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
  今天分析了一下如何将 vfp 的 exe 运行时要使用的运行库更名的问题。下面是分析结果,以 vfp9 简体中文 Windows 系统为例。
  我们知道,编译成 exe 的 vfp 程序要加载两个运行时库,它们的缺省名称为 vfp9r.dll 和 vfp9rchs.dll。vfp 在正常情况下查找和加载这两个 dll 的方式是这样的:
  1. 首先从注册表中(位置: HKEY_CLASSES_ROOT\VisualFoxProRuntime.9\Shell\Open\Command)读取运行库的文件路径和名称定义,通常是 C:\Program Files\Common Files\Microsoft Shared\VFP\vfp9r.dll,然后加载它。
  2. 加载成功的 vfp9r.dll 根据 Windows 确定要使用的语言资源文件 vfp9r???.dll,对于简体中文,使用 vfp9rchs.dll
  假定我们将这两个运行库文件更名为 aaa.dll 和 aaa.chs.dll,并放到 c:\windows\system32 下的话,如何让我们的 exe 仍能正常运行,又不影响其他 vfp 程序正常运行呢?
  首先,要使我们的 exe 不使用 HKCR\VisualFoxProRuntime.9\Shell\Open\Command 中的运行库缺省定义。先在注册表中增加一项我们要使用的运行库定义:
  Windows Registry Editor Version 5.00
  [HKEY_CLASSES_ROOT\MyRuntime\Shell\Open\Command]
  @="C:\\WINDOWS\\system32\\aaa.dll"
  打开记事本,贴入上面的内容并保存为 my.reg,然后双击这个文件导入到注册表中。下面修改 exe 让它来读取这个设置。
  使用任何16进制编辑器(例如:UltraEdit),在 exe 中查找 VisualFoxProRuntime.9,找到后将其改为我们刚定义的 MyRuntime(注意修改后的串不要超过原串长度,若长度小于原串的话,注意尾部要填一个 00)
  保存修改后的 exe 文件,现在我们的 exe 运行时将加载这个 aaa.dll 而不会再找 vfp9r.dll 了。
  接下来我们要让 aaa.dll 去找 aaa.chs.dll 而不找原来的 vfp9rchs.dll,仍用16进制编辑器,这次打开 aaa.dll,查找 VisualFoxproRuntime.9\Resources,看到紧接着的 VFP9R%s 了吗?就是它,将它改为 aaa.%s,由于我们的 aaa.%s 比 vfp9r%s 少一个字符,所以后面也要填一个 00。
  好了,保存好修改后的 aaa.dll。就这么简单,现在这个 exe 将加载 c:\windows\system32\ 的运行库 aaa.dll 和 aaa.chs.dll。

  2009年上半年全国计算机等级考试参考答案请进入计算机考试论坛

  2009年全国计算机等级考试报名信息汇总

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  2009年上半年全国计算机二级考试试题及答案

  2009年上半年全国计算机等级考试试题答案汇总



相关文章


2004年4月全国计算机等级考试二级VFP笔试试题及答案计算机二级考试
2003年9月全国计算机等级考试二级VFP笔试试题及答案计算机二级考试
2003年4月全国计算机等级考试二级VFP笔试试题及答案计算机二级考试
计算机二级:FoxPro中WindowsAPI的调用计算机二级考试
改变vfp可执行文件要的运行库位置和文件名计算机二级考试
计算机二级VF辅导:VFP程序的五点经验计算机二级考试
2009年上半年全国计算机等考二级VF模拟试题与答案计算机二级考试
VF辅导:VFP中微调按钮应用技巧二则计算机二级考试
用VFP内部选单命令实现编辑功能计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛