Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

FDirect3D._Release - какой правильный спосоп освобождения обьекта   Найти похожие ветки 

 
MrAngel   (2004-04-30 23:14) [0]

FDirect3D : IDIRECT3D9;

Вот это работает.
 
if Assigned (FDirect3D) then
begin
 //FDirect3D._Release;
 FDirect3D := nil;
end;

Вот это работает но при выходе вылетает ошибка.
if Assigned (FDirect3D) then
begin
 FDirect3D._Release;
 FDirect3D := nil;
end;

Почему так???  Ведь FDirect3D := nil; не что иное как присваивание нулевого значения переменной, следовательно указатель в памяти безвозвратно теряется, а обьект не освобождается.


 
cyborg ©   (2004-05-01 10:36) [1]

Второе для Дельфи5 и ниже, первое для Дельфи 6 и выше.


 
M&Ms   (2004-05-02 01:08) [2]

2cyborg

неправда! второе вообще не для делфи

Почему так???  Ведь FDirect3D := nil; не что иное как присваивание нулевого значения переменной, следовательно указатель в памяти безвозвратно теряется, а обьект не освобождается.

читай хелп по COM-обьектам... вообще в Делфи с их освобожедением можно вообще не париться -- _Release вызывается автоматически (а когда НИЛ присваиваешь -- принудительно)


 
MrAngel   (2004-05-02 16:15) [3]

M&Ms   ok ясно, значит это одна из особенностей COM.


 
VMcL ©   (2004-05-02 18:29) [4]

>>MrAngel  (02.05.04 16:15) [3]

Это особенность конкретной среды программрования, а не COM. Компилятор Delphi автоматически вставляет вызов _Release(), а компилятор MSVC - нет, надо руками.


 
MrAngel   (2004-05-05 01:54) [5]

Ясно thanks



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
4-1089432503
Геннадий
2004-07-10 08:08
2004.08.22
Как запустить программу от имени заданной учётной записи?


3-1091035902
senderw
2004-07-28 21:31
2004.08.22
как удалить удаленные записи из таблицы


4-1089720344
DDDeN
2004-07-13 16:05
2004.08.22
Обзор папок SGHBrowseFolder


1-1091682277
mixam
2004-08-05 09:04
2004.08.22
работа с log файлами


6-1088068383
][ncognito
2004-06-24 13:13
2004.08.22
Вкл/вкл LAN