Мы пробовали этот год назад с Indy и встроенным cid: изображения вроде этого: https://forums.codegear.com/thread.jspa?threadID=17473
Мы никогда не получал его стабильным, каждый раз, когда был еще один почтовый читатель, который был заблокирован (если мы его работаем в Outlook, то Thunderbird не принимал его, или Outlook Express, или, и т. д. и т. д.).
В в конце мы сделали это с .NET, используя AspNetEmail , и он работал как шарм.
- jeroen
Невозможно делать то, что вы хотите. Ваша функция-член-член не может изменить значение данных (адрес, на который он указывает), но нет ничего о том, чтобы не изменять содержимое, на которое оно указывает, как вы уже заметили. Использование функции std::vector
помогло бы, поскольку внутри функции-члена const вы имели бы вектор-константу, не имея возможности вызвать какую-либо из ее изменяемых функций.
Причина, по которой вы должны использовать std :: vector, на самом деле потому, что вы хотите сохранить коллекцию int, а не указатель int, поэтому почему бы не использовать ее?
Это также решило бы ваш const ' ness issue.
Вот как это работает: объявление метода const приведет к тому, что все члены класса будут const. В вашем случае это означает, что в области метода ваш член data
станет постоянным указателем на int. Это означает, что вы можете изменить значение int (также означая членов массива), пока data
указывает на то же место. Используя std::vector
, данные станут константой std::vector
, на которую вы могли бы вызывать только функции const. Поэтому да, вы должны использовать std::vector
.