2

我正在尝试将 C++ 项目转换为 Delphi,但我不知道如何转换这两个类:

class CData;
class CContext;

class CData
{
public:
    CContext* Data;
};

class CContext
{
public:
    char Unk[2240];
    DWORD data1;
    DWORD data2;
    DWORD data3;
};

用法:

CData* Data = (CData*)(0x00112233);

//This code obtain the bytes in memory of the address "0x00112233" based on the sizes specified at CContext class

请,如果有人知道,请帮助我。

谢谢你。

4

2 回答 2

6

类只是一个简单的复合结构。这是德尔福的记录:

type
  TData = record
    unk: array [0..2240-1] of AnsiChar;
    data1, data2, data3: DWORD;
  end;

您的上下文类型只是指向它的指针:

type
  TContext =^TData;

在 C 代码中,这个指针被包装在一个对我来说似乎毫无意义的类中。

声明一个变量,它是指向 TContext 的指针:

var
  context: ^TContext;

像这样分配它:

context := Pointer($00112233);
于 2013-11-11T15:03:24.967 回答
0

看起来您的CContext课程只不过是一个 2240 长度的字符串,带有 3 个保留空间的双字(可能从未使用过)。 CData只不过是一个指向CContext. 要更具体地了解如何移植这些,您需要更详细地说明它们的使用方式。就目前而言,您可能只实现一个CData具有字符串成员的版本。

于 2013-11-11T14:32:10.223 回答