Hallo, ich habe da ein kleines großes Problem
:
Ich möchte gerne ein DelphiProgramm in ein C++-Programm umwandeln.
Das klappt auch ganz gut, bis ich zu Klassen und Strukturen gekommen bin.
ich habe in Delphi dieses hier:
type
PImageDosHeader = ^TImageDosHeader;
TImageDosHeader = packed record // DOS .EXE header
e_magic : Word; // Magic number
e_cblp : Word; // Bytes on last page of file
e_cp : Word; // Pages in file
e_crlc : Word; // Relocations
e_cparhdr : Word; // Size of header in paragraphs
e_minalloc: Word; // Minimum extra paragraphs needed
e_maxalloc: Word; // Maximum extra paragraphs needed
e_ss : Word; // Initial (relative) SS value
e_sp : Word; // Initial SP value
e_csum : Word; // Checksum
e_ip : Word; // Initial
IP value
e_cs : Word; // Initial (relative) CS value
e_lfarlc : Word; // File address of relocation table
e_ovno : Word; // Overlay number
e_res : array [0..3] of Word; // Reserved words
e_oemid : Word; // OEM identifier (for e_oeminfo)
e_oeminfo : Word; // OEM information; e_oemid specific
e_res2 : array [0..9] of Word; // Reserved words
_lfanew : Longint; // File address of new exe header
end;
PImageNtHeaders = ^TImageNtHeaders;
TImageNtHeaders = record
Signature : DWORD;
FileHeader : TImageFileHeader;
OptionalHeader: TImageOptionalHeader;
end;
In der Hauptfunktion:
Resource: Pointer;
Resource := LockResource(LoadResource(0, FindResource(0, 'Image', 'EXE')));
NtHeaders: PImageNtHeaders;
NtHeaders := PImageNtHeaders(Cardinal(Resource) + Cardinal(PImageDosHeader(Resource)._lfanew));
Wie kann ich das jetzt in C++ bringen?
Die Strukturen ahbe ich schon übernommen mit:
struct TImageDosHeader
{
WORD e_magic;
WORD e_cblp;
WORD e_cp;
WORD e_crlc;
WORD e_cparhdr;
WORD e_minalloc;
WORD e_maxalloc;
WORD e_ss;
WORD e_sp;
WORD e_csum;
WORD e_ip;
WORD e_cs;
WORD e_lfarlc;
WORD e_ovno;
WORD e_res[3];
WORD e_oemid ;
WORD e_oeminfo;
WORD e_res2[9];
long int _lfanew;
};
struct TImageNtHeaders
{
DWORD Signature;
TImageFileHeader FileHeader;
TImageOptionalHeader OptionalHeader;
};
Die Resource habe ich auch hinbekommen, aber wie kann ich jetzt dieses Pointerstrukturen in C++ bringen, ich bin echt am verzweifeln!
Danke schon mal an alle, die sich bemühen.