内容简介:我需要在Classes.pas中修补一个方法(TReader.ReadString – 我想强制它使用指定的代码页,而不是系统默认值).如果我将Classes.pas复制到我的项目中,我将不得不重建整个VCL.有没有(简单)方法在运行时修补方法?
我需要在Classes.pas中修补一个方法
(TReader.ReadString – 我想强制它使用指定的代码页,而不是系统默认值).
如果我将Classes.pas复制到我的项目中,我将不得不重建整个VCL.有没有(简单)方法在运行时修补方法?
修改Classes.pas的实现方面不需要重新编译所有内容. Delphi计算出一个单元是否需要通过类似于此的算法重新编译:
>如果发现DCU:
> DCU格式是否过时(旧版编译器)?如果是这样,需要source来重新编译或编译时错误.
>路径上的来源?如果是这样,如果它比DCU更新,则重新编译
>对于每个使用过的单位:
>加载时重复分析
>对于该单位的每个使用过的符号(“import”:类型,变量,例程,初始化常量等):
>导入的符号版本是否与使用过的单位中的符号不同?如果是这样,需要重新编译.
>如果未找到DCU,则需要找到并编译源代码,否则编译时错误
符号版本的重要概念.保存DCU时,Delphi会根据符号的接口声明计算散列,并将其与符号关联.使用该符号的其他单位也存储符号版本.这样,与大多数C链接器不同,避免了由过时符号引起的链接时冲突.
这样做的结果是,您应该能够将Classes.pas添加到您的项目中并几乎根据您的内容修改其实现部分,并且仍然能够静态链接其余的RTL和VCL以及第三方库,甚至那些只以对象格式提供的.
要小心的事情:
>内联例程;内联例程的主体是符号版本的一部分
>泛型;泛型类型和方法的实现方是各个符号版本的一部分
翻译自:https://stackoverflow.com/questions/1482311/how-to-patch-a-method-in-classes-pas
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 趣视频:内核热修补
- Google 修补多项 Android 高危漏洞
- 美国土安全部规定联邦机构漏洞修补具体时间
- Linux Kernel 4.15 正式发布,修补幽灵熔断漏洞
- 在威胁出现之前干掉它! IBM开发最新虚拟修补漏洞技术
- 重装系统有啥用?英特尔官方:无法修补就推倒重建
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Design and Analysis of Distributed Algorithms (Wiley Series on P
Nicola Santoro / Wiley-Interscience / 2006-10-27 / USD 140.95
This text is based on a simple and fully reactive computational model that allows for intuitive comprehension and logical designs. The principles and techniques presented can be applied to any distrib......一起来看看 《Design and Analysis of Distributed Algorithms (Wiley Series on P》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
MD5 加密
MD5 加密工具