In der
Unit System gibt es ja die Prozeduren GetMamoryManager und an diese, bzw. an das Ergbnis welches diese liefert müßtest du rankommen und könntest dann via SetMemoryManager diesen deiner
DLL zuweisen.
Ansonsten gäbe es nur eine einzige Möglichkeit einem "fremden" Speichermanager einen externen String unterzujubeln ... man muß den String wie eine Konstante aussehen lassen.
Schau dir mal die beiden Threads an >
PAnsiStringInfo
Strings, welche von der EXE in die eigene
DLL ausgelesen werden sollen mäßten entweder über einen PChar gecastet oder über UniqueString in den eigenen Speichermanager geladen werden.
PS: Ein TBitmap kapselt intern auch nur Windows-Objekte.
bitmap.Hande = HIMAGE
und im TBitmap verstecht sich ein TBitmapImage, welches das Bild und Anderes kapselt.
Delphi-Quellcode:
TBitmapImage =
class(TSharedImage)
private
FHandle: HBITMAP;
// DDB or DIB handle, used for drawing
FMaskHandle: HBITMAP;
// DDB handle
FPalette: HPALETTE;
FDIBHandle: HBITMAP;
// DIB handle corresponding to TDIBSection
FDIB: TDIBSection;
FSaveStream: TMemoryStream;
// Save original RLE stream until image is modified
FHalftone: Boolean;
// FPalette is halftone; don't write to file