Einzelnen Beitrag anzeigen

ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

DLL und PAnsiChar

  Alt 16. Jan 2014, 20:36
Hallo,
ich habe eine DLL, mit welcher ich E-Mails verschicken. Alle relevanten Daten der Mail werden in einem eigenem Record, bzw. Array übergeben. Außer dem Port und einem Boolean-Wert, sind alle anderen Daten vom Typ PChar. Da ich aber nun die DLL in eine Delphi 5 Anwendung einbinden muss, habe ich PChar in PAnsiChar geändert. Allerdings erhalte ich jetzt in meinem Test-Programm, was ich in XE2 entwickelt habe an dieser Stelle den Fehler "Ungültige Zeigeroperation":

Delphi-Quellcode:
if Trim(AMailInfo[0].AAttachments) <> EmptyStr then
      begin
        try
          IdAttachmentList := TStringList.Create;
          IdAttachmentList.CommaText := AMailInfo[0].AAttachments;

          for i := 0 to IdAttachmentList.Count - 1 do
          begin
            IdMessage.IsEncoded := True;

            IdAttachment := TIdAttachmentFile.Create(IdMessage.MessageParts,
              IdAttachmentList.Strings[i]);
            IdAttachment.FileName :=
              ExtractFileName(IdAttachmentList.Strings[i]);
            IdAttachment.ContentType := 'application/octet-stream';
            IdAttachment.OpenLoadStream;
            IdAttachment.CloseLoadStream;
          end;
        finally
          IdAttachmentList.Free;
        end;
      end;
Klammer ich diese Stelle raus, erhalte ich schließlich beim Senden eine Zugriffsverletzung. Mit PChar hat alles einwandfrei geklappt! Wo genau kann da der Fehler liegen?

Gruß
Lukas
  Mit Zitat antworten Zitat