捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
ProcBinder v1.0.0.0
关键字:TProcBinder 运行期重定向函数/过程
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:高级 完成时间:2007/7/2
发布者:egust 发布时间:2007/7/2
编辑器:DELPHI7 语  种:简体中文
分 类:杂项 下载浏览:310/6778
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
-= ProcBinder =-
版本历史:
  [2007-7-1]
    v 1.0.0.0 - 第一版放出。
    [*] TProcList类
    [*] TProcBinder类

使用说明:
    ProcBinder用于在运行期重定向函数/过程,当代码执行到原有函数/过程(包括类函数/过程)时即跳转到新的函数/过程。方法是在原有函数/过程的入口写入 jmp [NewProc] 的二进制代码以达到跳转的目的。由于此跳转代码长度为6字节,故要求原函数/过程不要太短,这点非常重要,否则会对其他函数/过程造成不可知的影响。另外,重定向后的新函数/过程的参数和调用约定一定要与原函数/过程一模一样,否则造成栈的破坏会对程序造成未知的影响。
    包中带了一个示例程序,演示基本用法。

*注意事项:
    [!] 原函数/过程的代码长度一定要大于6;
    [!] 重定向后的新函数/过程的 参数 和 调用约定 一定要与原函数/过程一模一样;
    [!] 如果不确定能否满足上述两项要求,建议不要使用此代码。
    [*] 目前只有针对Win32平台的实现。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论6条 当前显示最后6条评论
guest2000 2007/7/3 19:12:57
这技术实用于哪些情况,能否说明一下?
egust 2007/7/4 9:46:32
比如,有些时候vcl提供的功能不能满足需求,但是提供的方法不是虚函数,但是vcl内部却使用该类,想要在vcl基础上完成想实现的功能就必须修改vcl底层。修改vcl并且重新编译一个是比较麻烦,另外即使仅在当前项目使用vcl,用不同版本的delphi编译也可能出现问题。所以用这个东西就可以在运行期模拟虚函数的效果,重定向原有的类方法,而不需要直接修改vcl源代码
egust 2007/7/4 10:06:49
我做这个的目的是为了实现一个语言包控件,并且能够在运行期通过加载的额外dll制作语言包,这样就要得到所有控件strings类型的属性记录,如果自己查PropInfo的话就记录不了TPersistent的派生类的DefineProperties记录的信息,如果直接用TWriter的话,由于TWriter的接口不是虚函数的形式,没法直接继承需要的类方法达到取舍的目的,自己分析TWriter生成的stream又很麻烦,所以打算干脆用这个东西虚拟一个继承出来
array 2007/7/9 8:45:48
可以做类似java中AOP的处理?
qsmile 2007/7/16 13:25:17
我比較關心你的那個語言包做出來了嗎?

我現在正在做一個,主要問題是因為屬性都是 string 的,我把語言切換包做到 dll 中,就必須引用 borlndMM.dll 。麻煩
egust 2007/7/24 18:42:05
因为决定以后尽量做unicode的程序,使用tnt系列控件,所以储存的时候打算用utf-8编码。这段时间在做一些基础库,把我以前做的unicode管理和一些数据结构重新整理封装了一下,接下来就要开始动手了。我不打算做成dll的形式来支持,计划直接集成控件的Loaded过程,在里面遍历窗体里存在的控件,根据设定写入字符串属性,运行期的变化就要程序员自己实现了。
针对dll和exe的内存管理器共享机制的问题我推荐使用fastmm项目,可以不用引用sharemem单元同时发布borlandmm.dll,除了直接使用fastmm外还可以使用“Borland Delphi 7 FastMM RTL 补丁”
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表