17. juni 2008 - 22:14Der er
9 kommentarer og 1 løsning
assigne hex addresse til procedural pointer
hej eksperter :)
jeg sidder og er ved at oversætte noget C++ kode til Delphi og har i denne sammenhæng behov for at assigne noge hexadecimale addresser til nogle procedurale pointere, helt bestemt direkte addresser i en DLL fil. Kodestumpen er som følger (men dette kan jo ikke komplieres):
Jeg kender udemærket til GetProcAddress og LoadLibrary, det forholdersig bare sådan at jeg er nød til at tilgå nogle funktioner direkte i Dll'en. :)
>>arne_v: := Ptr(HexAddr); var lige det jeg søgte. venligst læg et svar :)
lige et lille sidespørgsmål: i selv samme C++ kode har jeg et memcpy kald, hvor der er defineret en konstant: er det tilsvarende i delphi når man sætter et & tegn forand en konstant (fx memcpy(Dest, &Src, 4)) i forbindelse med procedure kaldet? :)
(jeg benytter Move() proceduren som erstatning for memcpy)
nu er der bare et andet lille problem der har sneget sig ind. i anden parametre i Move() er det af typen var der skal indsættes. hvordan oversætter jeg denne: (void*) 0x10096cd8 korrekt?
jeg har prøvet at lave to variabler
var I: Integer; PI: ^Integer; begin I := $10096cd8; PI := Addr(I); Move(@Conv, @PI, 4); end;
men bliver ved med at give mig en compiler error, Variable required. hvad gør jeg galt?
>>arne_v: fandt ud af at jeg skulle bruge CopyMemory(); istedet da proceduren acceptere en pointer som kilde og destinations parametre. så nu virker det hele perfekt, tak for hjælpen :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.