Einzelnen Beitrag anzeigen

Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#12

AW: Werte unter Delphi XE2 zuweisen !?

  Alt 8. Apr 2012, 15:31
Die Ursache war einfach die neue und auch sinnvolle Erweiterung des TRect um Width und Height, die gab es halt zum Zeitpunkt der Erstellung noch nicht. Mal sehen, was die weitere Umstellung auf XE2 noch an Überraschungen bringt, die meisten Sachen laufen aber ohne Probleme. Anders sieht es bei Fremdkomponenten aus wie z.B. die DLLLoader.pas (BASS), die ich in älteren Spielen für die mp3-Wiedergabe nutze. Hier schmiert das Programm direkt beim Start ab, bleibt aber noch im Task-Manager drin.

Delphi-Quellcode:
IF ASSIGNED(Stream) THEN BEGIN
  Stream.Seek(0, soFromBeginning);
  IF Stream.Size>0 THEN BEGIN
   IF ReadImageHeaders THEN BEGIN
    IF InitializeImage THEN BEGIN
     IF ReadSections THEN BEGIN
      IF ProcessRelocations THEN BEGIN
       IF ProcessImports THEN BEGIN
        IF ProtectSections THEN BEGIN
         IF InitializeLibrary THEN BEGIN // Exception
          IF ProcessExports THEN BEGIN
           RESULT:=TRUE;
          END;
         END;
        END;
  ...
Hier die entsprechende Function:
Delphi-Quellcode:
FUNCTION InitializeLibrary:BOOLEAN;
 BEGIN
  RESULT:=FALSE;
  @DLLProc:=ConvertPointer(ImageNTHeaders.OptionalHeader.AddressOfEntryPoint);
  IF DLLProc(CARDINAL(ImageBase),DLL_PROCESS_ATTACH,NIL) THEN BEGIN
   RESULT:=TRUE;
  END;
 END;
Aber das wäre nicht ganz so gravierend, da die Spiele nicht weiterentwickelt werden.
Ronald
  Mit Zitat antworten Zitat