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):
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.