Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ашипка при освобождении DLL


RzCoDer ©   (2006-06-12 11:11:00) 

procedure TForm1.Button1Click(Sender: TObject);
var
hcDLL: THandle;
fGetStr : TGetStr;
begin
hcDLL := LoadLibrary('mydll.dll');
if hcDLL <= HINSTANCE_ERROR then
begin
 MessageDlg('Ошибка открытия DLL', mtError, [mbOk], 0);
 Exit;
end;
fGetStr := GetProcAddress(hcDLL, 'GetString');
if not Assigned(fGetStr) then
begin
 MessageDlg('Нету такой функции!',mtError,[mbOk],0);
 exit;
end;
label1.Caption := fGetStr;
FreeLibrary(hcDLL);
end;


AV ошибка при вызове FreeLibrary(hcDLL); если её не писать ошибки нет... отчего так?


Palladin   (2006-06-12 14:26:00) [1]

И второй пост тоже, отнюдь, не бред, а довольно хорошие замечания о совершенных ошибках.


Юрий Зотов   (2006-06-12 14:14:00) [2]

> RzCoDer ©   (12.06.06 14:07) [10]

Когда слово "вы" пишут с маленькой буквы, то это означает, что оно относится ко ВСЕМ.

Значит, бредом Вы назвали и первый пост тоже.


RzCoDer   (2006-06-12 14:07:00) [3]


> Юрий Зотов

Кхм, а я это про первый пост сказал?


Юрий Зотов   (2006-06-12 14:05:00) [4]

> RzCoDer ©   (12.06.06 13:39) [8]

Ответ по делу был дан в первом же посте. Если Вы посчитали его бредом, то это проблема Ваша.


RzCoDer   (2006-06-12 13:39:00) [5]


> Т.е. если функции нет, то и библиотеку выгружать не зачем?
>
> PS. Для чего в Делфи встроили отладчик?


1. Ибо мне виднее когда и как вызывать exit и когда освобожать библиотеку

2. А с таким отношением нечего в обще флудить, то что отладчик есть это я и без вас знаю, но почему то спросил в форуме, ожидая по делуответ


Palladin   (2006-06-12 13:22:00) [6]


>  а вы явно какой то бред сказали,

и где там сказан бред, позвольте поинтересоваться?


RzCoDer   (2006-06-12 12:22:00) [7]


> isasa

В принципе говорил тоже правильно


RzCoDer   (2006-06-12 12:21:00) [8]


> Плохиш

Я то протрезвел и ошибку разрешил, а вы явно какой то бред сказали, ибо дело было в использовании string для экспорта. Правильно юзать pChar и всего то.


Плохиш   (2006-06-12 12:16:00) [9]


> RzCoDer ©   (12.06.06 11:49) [3]
> Ошибка имеенно апри вызове

Я думаю, для начала надо протрезветь.


RzCoDer   (2006-06-12 11:49:00) [10]

Ошибка имеенно апри вызове FreeLibrary(hcDLL);


Плохиш   (2006-06-12 11:41:00) [11]


> hcDLL := LoadLibrary('mydll.dll');
> if hcDLL <= HINSTANCE_ERRORthen

Чушь какая-то, в случае ошибки возвращается 0 и ошибку надо надо спрашивать у GetLastError.

> if not Assigned(fGetStr) then
> begin
>  MessageDlg('Нету такой функции!',mtError,[mbOk],0);
>   exit;
> end;
> label1.Caption := fGetStr;
> FreeLibrary(hcDLL);

Т.е. если функции нет, то и библиотеку выгружать не зачем?

PS. Для чего в Делфи встроили отладчик?


isasa   (2006-06-12 11:39:00) [12]

telepator on

Наверное,
label1.Caption = type TCaption = type string;
uses Sharemem, ...

telepator off


Наверх

Титульная страница Поиск, карта сайта Написать письмо