我正在尝试将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
如果有人知道,请帮助我。
谢谢。
答案 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
版本。