将类从C ++转换为Delphi

时间:2013-11-11 14:25:12

标签: c++ delphi class

我正在尝试将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

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

谢谢。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

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