将DeDe常量转换为有效声明或其他接口提取工具?

Rob*_*ank 1 delphi decompiling

我正在使用DeDe创建一个我可以编译的API(接口).(严格合法:当我们等待供应商在两个月内交付D2010版本时,我们至少可以让我们的应用程序编译......)

我们将剔除所有方法.

Dede发出如下的常量声明:

  LTIMGLISTCLASS = 
    00: ÿÿÿÿ....LEADIMGL|FF FF FF FF 0D 00 00 00 4C 45 41 44 49 4D 47 4C|
    10: IST32.          |49 53 54 33 32 00|;

  DS_PREFIX = 
    0: ÿÿÿÿ....DICM.|FF FF FF FF 04 00 00 00 44 49 43 4D 00|;

我如何将这些转换为可编辑的声明?

从理论上讲,我不关心实际值,因为我怀疑它们在任何地方使用,但我想让它们的大小正确.这些整数,LongInts还是???

任何其他关于使用DeDe的提示都会受到欢迎.

Rob*_*edy 6

这些是字符串.前四个字节是引用计数,对于字符串文字,始终为-1($ ffffffff).接下来的四个字节是字符数.然后字符是一个空终止符.

const
  LTIMGLISTCLASS = 'LEADIMGLIST32'; // 13 = $0D characters
  DS_PREFIX = 'DICM'; // 4 = $04 characters
Run Code Online (Sandbox Code Playgroud)

您不必"怀疑"这些常量是否在任何地方使用.你可以凭经验证实.编译没有这些常量的项目.如果它编译,那么它们就不会被使用.

如果您的项目没有编译,那么必须在代码中的某个地方使用这些常量.根据上下文,您可以提供自己的声明.如果常量像字符串一样使用,则声明一个字符串; 如果它像整数一样使用,则声明一个整数.

另一种选择是将您的项目加载到与您拥有的DCU兼容的Delphi版本中.使用代码完成使IDE显示常量及其类型.