Menu Search

Borland Delphi

Reading DLL from Memory
var
ms : TMemoryStream;
rs : TResourceStream;
begin
if 0 FindResource(hInstance, 'DemoDLL', RT_RCDATA) then
begin
rs := TResourceStream.Create(hInstance, 'DemoDLL', RT_RCDATA);
ms := TMemoryStream.Create;
try
ms.LoadFromStream(rs);

ms.Position := 0;
m_DllDataSize := ms.Size;
mp_DllData := GetMemory(m_DllDataSize);

ms.Read(mp_DllData^, m_DllDataSize);
finally
ms.Free;
rs.Free;
end;
end;
end;

Next, when you have the DLL loaded from a resource into memory, you can call its procedures:

var
btMM: PBTMemoryModule;
begin
btMM := BTMemoryLoadLibary(mp_DllData, m_DllDataSize);
try
if btMM = nil then Abort;
@m_TestCallstd := BTMemoryGetProcAddress(btMM, 'TestCallstd');
if @m_TestCallstd = nil then Abort;
m_TestCallstd('This is a Dll Memory call!');
except
Showmessage('An error occoured while loading the dll: ' + BTMemoryGetLastError);
end;
if Assigned(btMM) then BTMemoryFreeLibrary(btMM);
end;

Liste

Index | List
  • Vorherige
  • Seite #n
  • #n
  • #c
  • Seite #n
  • Nächste
Index | List
  • Vorherige
  • Seite #n
  • #n
  • #c
  • Seite #n
  • Nächste

Index

Index | List
  • Vorherige
  • Seite #n
  • #n
  • #c
  • Seite #n
  • Nächste
Index | List
  • Vorherige
  • Seite #n
  • #n
  • #c
  • Seite #n
  • Nächste

LetzteChance.Org - Links -

PDF/ZIP/Word