Текущий архив: 2005.07.18;
Скачать: CL | DM;
ВнизEnumObjects Найти похожие ветки
← →
psa247 © (2005-05-22 19:47) [0]Bin.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN, enm);
Как высвободить память из-под enm? В MSDN написано:
The calling application must free the returned IEnumIDList object by calling its Release method.
У меня выводит сообщение:
---------------------------
Debugger Exception Notification
---------------------------
Project UMP.exe raised exception class EPrivilege with message "Privileged instruction". Process stopped. Use Step or Run to continue.
← →
Ученик (2005-05-22 20:10) [1]>psa247 © (22.05.05 19:47)
enm := nil или вообще ничего не делать, само освободится
← →
psa247 © (2005-05-22 20:23) [2]Не владею англ. профессионально, а что сие в переводе?
by calling its Release method
← →
Ученик (2005-05-22 20:42) [3]>psa247 © (22.05.05 20:23) [2]
{ system.pas }
function _IntfClear(var Dest: IInterface): Pointer;
asm
MOV EDX,[EAX]
TEST EDX,EDX
JE @@1
MOV DWORD PTR [EAX],0
PUSH EAX
PUSH EDX
MOV EAX,[EDX]
CALL DWORD PTR [EAX] + VMTOFFSET IInterface._Release
POP EAX
@@1:
end;
В отладчике можно увидеть вызов IntfClear
← →
VMcL © (2005-05-22 22:24) [4]>>psa247 © (22.05.05 19:47)
Это для C/C++. В Delphi для переменных интерфейсного типа Release() вызвается автоматически при выходе переменной из области видимости или переприсваивании.
Страницы: 1 вся ветка
Текущий архив: 2005.07.18;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.04 c