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

Вниз

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

 
RzCoDer ©   (2006-06-12 11:11) [0]

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); если её не писать ошибки нет... отчего так?


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

telepator on

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

telepator off


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


> hcDLL := LoadLibrary("mydll.dll");
> if hcDLL <= HINSTANCE_ERROR then

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

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

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

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


 
RzCoDer ©   (2006-06-12 11:49) [3]

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


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


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

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


 
RzCoDer ©   (2006-06-12 12:21) [5]


> Плохиш

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


 
RzCoDer ©   (2006-06-12 12:22) [6]


> isasa

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


 
Palladin ©   (2006-06-12 13:22) [7]


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

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


 
RzCoDer ©   (2006-06-12 13:39) [8]


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


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

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


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

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

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


 
RzCoDer ©   (2006-06-12 14:07) [10]


> Юрий Зотов

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


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

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

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

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


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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.031 c
4-1143642145
oleon
2006-03-29 18:22
2006.07.02
Какое событие случается во время запуска ScreenSaver.


15-1149687062
oldman
2006-06-07 17:31
2006.07.02
Вам не надоела сотовая связь MTS?


15-1149758569
Der Nechk@ssoff
2006-06-08 13:22
2006.07.02
Умер Арнольд Ньюман


6-1140518682
Officeman
2006-02-21 13:44
2006.07.02
Передача данных


15-1149483452
Ega23
2006-06-05 08:57
2006.07.02
С Днём рождения! 3 июня