![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ашипка при освобождении 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