我在Delphi XE中安装了所有Dsharp软件包。但是,当我运行该示例时,我总是收到以下错误消息:
例外:修补:ObjAuto.GetTypeSize失败。你在方法中设置了一个断点吗?
是否有人为此错误找到了解决方法?
答案 0 :(得分:6)
该库正在尝试应用运行时代码补丁来修复ObjAuto.GetTypeSize
RTL函数中的缺陷。可以在此处看到执行此操作的代码:https://bitbucket.org/sglienke/dsharp/src/ad7c5983505f0117f1347f92d2bb96c07bdfda94/Source/Core/ObjAutoPatch.pas?at=master&fileviewer=file-view-default
对FindMethodBytes
的调用失败。因为此函数即将修改执行代码以安装运行时补丁,所以它首先检查代码是否符合预期。它搜索代码,寻找该功能的已知签名。
无法找到该签名,因此无法安装补丁。因此错误消息。修补程序代码以这种方式失败的一些可能原因:
问题可能是由于我还没有想到的其他原因。但从根本上说,这些都是同一主题的变种。运行时遇到的代码不符合预期。我建议您尝试找出原因,以便确定最佳方法。
鉴于此消息有很多可能的原因,我只是试图解释它的概念原因,但现在你真的要调试环境中的细节。