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ß