Wer kann C++ Source in Delphi übersetzen
-
Hallo,
Wer kann mir diesen Source von C++ in den Source von Delphi übersetzen?
Danke.Headermaker EnlargeHeader(PE_INFO *pe) { Headermaker ret = LPE_HANDLEDERROR; HWND hErrDlg = GetActiveWindow(); DWORD dwHSize, dwBuff, i; IMAGE_SECTION_HEADER *pS; HANDLE hFile; void *pMem; DWORD dwMemSize; if ( GetRealSizeOfHeaders( pe->pMap ) >= 0x1000 ) { ShowError(hErrDlg, "Error"); goto Exit; } dwHSize = GetRealSizeOfHeaders(pe->pMap); dwMemSize = pe->dwFileSize - dwHSize; pMem = m(dwMemSize); if (!pMem) { ret = LPE_NOMEMORY; goto Exit; } memcpy(pMem, (void*)((DWORD)pe->pMap + dwHSize), dwMemSize); pe->pNTh->OptionalHeader.SizeOfHeaders = dwHSize + 0x200; pS = pe->pSech; for (i = 0; i < pe->pNTh->FileHeader.NumberOfSections; i++) { if (pS->PointerToRawData) pS->PointerToRawData += 0x200; ++pS; } UnloadPEFile(pe); hFile = GetFileHandle(pe->cPath, GFH_OPENEXISTING_RW); SetFilePointer(hFile, dwHSize + 0x200, 0, FILE_BEGIN); WriteFile( hFile, pMem, dwMemSize, &dwBuff, NULL); CloseHandle(hFile); f(pMem); if (LoadPEFile(pe) != LPEF_SUCCESS) { HandleRemapError(hErrDlg); goto Exit; } ShowPEBaseInfo(hPEEditor); ret = LPE_OK; Exit: return ret; }[ Dieser Beitrag wurde am 04.03.2003 um 19:16 Uhr von Dimah editiert. ]
-
Das ist WinApi Code.
Thread verschoben ins WinApi Forum. WinAPI
-
Das ist nur ein Teil eines Codes ohne zu Wiesen welcher Record PE_INFO ist und
was die Funktion GetRealSizeOfHeaders macht ist es nur Teilweise möglich.
zb.
DWORD dwMemSize; Gleich dwMemSize: DWORD;
IMAGE_SECTION_HEADER *pS; Gleich
ps : PIMAGE_SECTION_HEADER; // oder TIMAGE_SECTION_HEADER;if ( GetRealSizeOfHeaders( pe->pMap ) >= 0x1000 )
{
ShowError(hErrDlg, "Error");
goto Exit;
}
Gleich
If GetRealSizeOfHeaders(pe.pMap) >= 0x1000 then
begin
ShowError(hErrDlg, 'Error');
Exit; // oder Break;
end;for (i = 0; i < pe->pNTh->FileHeader.NumberOfSections; i++)
Gleich
for i := 0 to pe.pNTh.FileHeader.NumberOfSections do
begin
// pS->PointerToRawData += 0x200;
pS.PointerToRawData := pS.PointerToRawData + 0x200;
end;if (LoadPEFile(pe) != LPEF_SUCCESS)
Gleich
if LoadPEFile(pe) not(LPEF_SUCCESS) then
beginend;
* Gleich ^
== Gleich =
! Gleich Not
-> Gleich .
++ Gleich Inc(n)
= Gleich :=
Ok Ich hoffe das konte dir einwenig weiter Helfen.
Tip:
Mit Strg u. linker Maustaste auf Funktions-Name oder Record usw. Klicken
erscheint der Delphi-Code!