Отправка вложения с использованием TIdAttachment в C ++ Builder - PullRequest
1 голос
/ 25 августа 2011

Как отправить вложение с помощью TIdyAttachment?

Как преобразовать этот TIdAttachment.Create(msg.MessageParts, 'c:\attach.bmp'); оператор Delphi в C ++ Builder? Как использовать этот абстрактный класс в C ++ Builder? Из-за его абстрактности я не могу создать его экземпляр !!!

1 Ответ

5 голосов
/ 25 августа 2011

Обратите внимание, что TIdAttachment действительно абстрактно (как заметил Реми Лебо в комментарии).Вместо этого используйте TIdAttachmentFile.В C ++, я думаю, это должно выглядеть так (Обновление: я вижу, вы уже нашли это):

TIdAttachmentFile *attachment = new TIdAttachmentFile(msg->MessageParts, "C:\\attach.bmp");

FWIW, вызовы именованных конструкторов, такие как TMyClass.Create(args) в Delphi, переводятся как new TMyClass(args) в C ++Builder.Вот почему Delphi часто перегружает Create вместо использования конструкторов с другими именами, таких как CreateWithSpecialParams.В Delphi конструктор может иметь любое имя, но не в C ++.

Обратите внимание, что в Delphi вы можете иметь constructor Create(Integer) и constructor CreateEx(Integer), и они различимы.Это нельзя перевести на C ++ Builder, поскольку оба переводят в MyClass(int), поэтому этого следует избегать, если программист Delphi хочет, чтобы его или ее класс можно было использовать в C ++ Builder.

...