tsdima писал(а):
А StringToOleStr это уже КОЛовское, и конструктор там - SysAllocString, т.е. тоже "у нутре оси"А разве только о FPC речь
Вот нарезка из Delpi7\Source\Rtl\Sys\System.pas
#pas
function StringToOleStr(const Source: string): PWideChar;
begin
Result := nil;
_WStrFromPCharLen(WideString(Pointer(Result)), PChar(Pointer(Source)), Length(Source));
end;
Какие-то не декларированные особенности языка: результат работы конструктора WideString - не уничтожается по выходе из зоны видимости
Полный атас...
tsdima писал(а):
Делается с любыми объектами. Не делается с указателямиЭто как бы зависит от того, что называть словом "делается"
Для тебя, как человека, пишущего в основном на C, этого должно означать вызов деструктора
В этом аспекте - дулю с маком
Типовой случай из наших кодов
#pas
dt := _doData('test');
Да, сей объект будет уничтожен по выходе из зоны видимости.
А вот как правильно уничтожать - тебя никто спрашивать не будет, хоть целое сочинение напиши в деструкторе, не будет он вызываться
А ручками вызвать Destroy ты тоже не можешь - имени-то у этой невидимой локальной переменной и нету
tsdima писал(а):
я вообще до сих пор не въеду в принципы Дельфячих объектов/указателей_на_объектыАналогично
Только результаты каких-то изнурительных экспериментов за плечами...
И фиг его знает, где про это можно прочитать
Инет завален литературой для пользователей, которым "а больше мне нафиг и не надо"...
А то, что именуется литературой "для профессионалов", больше напоминает расширенное справочное пособие.
Типа, профессиналам тоже понимание не обязательно, им достаточно просто инфы про либы напихать по самое нихочу - и пусть подавятся