相关疑难解决方法(0)

在delphi中调用例程调用

我想修补一个例程调用,以便能够通过一些修改自己处理它.我正在写一个资源加载器.我想修补Delphi的LoadResourceModule和InitInheritedComponent例程.我已经在MadExcept.pas单元中检查了PatchAPI调用,但如果我可以将其用于我的项目,则无法弄明白.

我想要类似的东西

我的exe在运行时调用 - > LoadResourceModule - >跳转到 - > MyCustomResourceModule ...

任何关于此的指针都会非常有帮助.

delphi monkeypatching

18
推荐指数
2
解决办法
4156
查看次数

访问Delphi类的严格受保护属性?

我需要访问一个严格的受保护属性,因为我需要创建一个验证(基于此属性的值)以避免错误.(我没有具有此属性的第三方类的源代码)只有我有类(接口)和dcu的定义(所以我无法更改属性可见性).问题是存在一种访问严格受保护财产的方法吗?(我真正读懂了Hallvard Vassbotn博客,但我不觉得这个特定主题参选.)

delphi class-helpers delphi-xe

16
推荐指数
2
解决办法
4217
查看次数

如何更改外部声明的函数的实现(绕行)

我有第三方功能

function DataCompare(const S1, S2: string; APartial: Boolean): Boolean;
begin
   ...
end;
Run Code Online (Sandbox Code Playgroud)

它用于另一个第三方单元.

我希望在运行时用另一个新实现替换函数体.

这可能吗?我想需要一些黑客(ala VirtualMemoryUnprotect).非汇编解决方案非常受欢迎.

delphi implementation replace function delphi-xe

12
推荐指数
1
解决办法
2723
查看次数

如何从Delphi 10.1 Berlin中的类助手访问私有字段?

我想使用Gabriel Corneanu的jpegex,jpeg.TJPEGImage的类助手.阅读这个这个,我了解到,超过德尔福西雅图你不能访问私有字段不再像jpegex确实(在下面的例子中FDATA).和David Heffernan提出的VMT一样,远远超出我的范围.有没有更简单的方法来完成这项工作?

   type
  // helper to access TJPEGData fields
  TJPEGDataHelper = class helper for TJPEGData
    function  Data: TCustomMemoryStream; inline;
    procedure SetData(D: TCustomMemoryStream);
    procedure SetSize(W,H: integer);
  end;

// TJPEGDataHelper
function TJPEGDataHelper.Data: TCustomMemoryStream;
begin
  Result := self.FData;
end;
Run Code Online (Sandbox Code Playgroud)

delphi class-helpers delphi-10.1-berlin

10
推荐指数
3
解决办法
4221
查看次数