![]() |
GetMem, TMapiRecipDesc und Delphi 2006
Ich kann in meiner App über ein eigenes E-Mail Formular E-Mails mittels MAPI versenden. Folgendes Codefragment aus meiner Senden-Prozedur:
Delphi-Quellcode:
Oben genannten Code habe ich in Delphi7 entwickelt und er lief bisher immer klaglos. Nun bin ich auf Delphi2006 umgestiegen und der Compiler meckert auf einmal bei
var
Recipients: array of TMapiRecipDesc; RecipientCount: Integer; begin ... if RecipientCount>0 then begin SetLength(Recipients,RecipientCount); GetMem(Recipients, SizeOf(TMapiRecipDesc) * RecipientCount); ... end TMapiRecipDesc ist aus der Delphi MAPI unit und hat folgende Struktur: MapiRecipDesc = packed record ulReserved: Cardinal; { Reserved for future use } ulRecipClass: Cardinal; { Recipient class } { MAPI_TO, MAPI_CC, MAPI_BCC, MAPI_ORIG } lpszName: LPSTR; { Recipient name } lpszAddress: LPSTR; { Recipient address (optional) } ulEIDSize: Cardinal; { Count in bytes of size of pEntryID } lpEntryID: Pointer; { System-specific recipient reference } end; TMapiRecipDesc = MapiRecipDesc; GetMem(Recipients, SizeOf(TMapiRecipDesc) * RecipientCount); [Pascal Fehler] SendEMailUnit.pas(258): E2008 Inkompatible Typen Wenn ich die Zeile auskommentiere, funktioniert das Senden der E-Mail immer noch. Nun meine Frage: Benötige ich das GetMem an dieser Stelle überhaupt, oder wird nicht automatisch Speicher über das SetLength(Recipients,RecipientCount) allokiert? Viele Grüße Guido [edit=sakura] [delphi]-Tags Mfg, sakura[/edit] |
Re: GetMem, TMapiRecipDesc und Delphi 2006
Genau so ist es: du brauchst das GetMem nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz