2011-08-25 87 views
1

發送附件如何使用TIdyAttachment發送附件?在C使用TIdAttachment ++ Builder的

如何轉換這種TIdAttachment.Create(msg.MessageParts, 'c:\attach.bmp');德爾福聲明,C++ Builder的? 如何在C++ builder中使用這個抽象類?由於它是抽象的,我不能創建它的一個實例!

+0

真的很容易比它!只需編寫TIdAttachmentFile(mess-> MessageParts,「c:\\ pic.jpg」);'這就完成了Suhrob! –

回答

5

注意TIdAttachment確實是抽象的(如雷米勒博在註釋中說明)。改爲使用TIdAttachmentFile。在C++中,我想它應該像(更新:我看你已經發現):

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

FWIW,命名爲構造函數調用像德爾福TMyClass.Create(args)被翻譯爲C++ Builder中new TMyClass(args)。這就是爲什麼德爾福經常重載Create,而不是使用不同名稱的構造函數,如CreateWithSpecialParams。在Delphi中,構造函數可以有任何名稱,但不能用C++。

請注意,在德爾福你可以有一個constructor Create(Integer)constructor CreateEx(Integer),他們是可區分的。這不是平移,以C++ Builder中,因爲轉化爲MyClass(int),這樣算下來,如果Delphi程序員希望他或她的班級是使用C++ Builder中應該避免。

+0

實際上,在Indy 10中,'TIdAttachment' *是一個抽象類。您必須改用'TIdAttachmentFile'。 –

+0

@雷米:好的,謝謝,我會編輯答案。 –

+0

正確的語法是味精 - > MessageParts – Riho