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

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

Dll и TThread [D5, D7, WinXP]


Страницы:   1 2 3 4 5 6 7 8 9

dms_main ©   (2004-10-29 10:02:00) 

Уважаемые мастера, обнаружил такой глюк.
Есть класс на основе стандартного Tthread,
креатится так:

constructor tmythread.create;
begin
   inherited create(false);
end;

Проблема в том , что в dll невызывается execute, хотя в console Application все работало замечательно.
Как лечить?


Reindeer Moss Eater   (2004-10-29 15:55:00) [81]

при loadlibrary выполняется begin..end?

Чё, еще раз?
Ну давай еще один раз:

Сто раз вызови LoadLibrary - код межу begin end выполнится ровно один раз.


Digitman   (2004-10-29 15:54:00) [82]


> dms_main ©   (29.10.04 15:48) [83]


ерунду не городи.

ставь брейкпойнты на строчках

 c:=a*b;

и

 thread:=TMyThread.create(2,2);

и лови эти брейкпойнты !

и попробуй только сказать, что ни один из них не "ловится"


dms_main   (2004-10-29 15:53:00) [83]


> Который поток первый загрузил DLL - того и тапки.
> Для него и будет выполнен код между begin/end.
>
> Остальные отдыхают.

это все понятно - begin..end - вызывается 1 раз
при loadlibrary выполняется begin..end? креатится трэд, прыгает на Waitfor и ждет пока тред завершится - а метод execute в трэде так и не вызывается.... :-(


Reindeer Moss Eater   (2004-10-29 15:50:00) [84]

Который поток первый загрузил DLL - того и тапки.
Для него и будет выполнен код между begin/end.

Остальные отдыхают.


Добрый дядька   (2004-10-29 15:48:00) [85]

>dms_main

Вопрос:

Зачем нужна такая библиотека, которая загружается в приложение, выполняя код один раз, затем висит, занимая ресурсы?


dms_main   (2004-10-29 15:48:00) [86]

ДА именно так
Делаю LoadLibrary - креатиться, а execute не вызывается - из-за этого и вся проблема.


Digitman   (2004-10-29 15:46:00) [87]


> dms_main ©   (29.10.04 15:42) [80]


> А я что сделал?


и что ? и продолжаешь утверждать, что управление методу Execute не передается в ходе старта трэда ?


dms_main   (2004-10-29 15:42:00) [88]


> просто вызови конструктор трэда в теле begin..end библиотеки.
> что этому мешает ?

А я что сделал?

begin
thread:=TMyThread.create(2,2);
thread.WaitFor;
end.


dms_main   (2004-10-29 15:41:00) [89]


> Так ведь работает уже

с экспортом - да ,а без экспорта - нет.
Я и спросил можно ли без экспорта и если да - то как.


Digitman   (2004-10-29 15:40:00) [90]

просто вызови конструктор трэда в теле begin..end библиотеки.
что этому мешает ?


dms_main   (2004-10-29 15:39:00) [91]

А если серьезно?


Reindeer Moss Eater   (2004-10-29 15:39:00) [92]

Так ведь работает уже


Reindeer Moss Eater   (2004-10-29 15:37:00) [93]

Все это напоминает ток-шоу с приглашенными актерами.
Но актеры эти приглашенные, надо отдать должное здешним спецам по кастингу, иногда просто гениальные попадаются.
Именно гениальные. Снимаю шляпу.


dms_main   (2004-10-29 15:35:00) [94]


> Чё, пошлины экспортные давят?

ага причем сильно..... :-))


Reindeer Moss Eater   (2004-10-29 15:34:00) [95]

как заставить это работать без экспорта?

Чё, пошлины экспортные давят?


dms_main   (2004-10-29 15:33:00) [96]


> да не будет это работать как положено !
> см. [63]

с экспортом уже работает...


dms_main   (2004-10-29 15:32:00) [97]


> То, что кто-то до сих пор с ручника не снялся.

- это точно......
Может объясните????
мне собственно и надо 1 раз , а не 2 и не 10.....
как заставить это работать без экспорта?


Digitman   (2004-10-29 15:31:00) [98]


> все заработало


да не будет это работать как положено !
см. [63]


> реально ли запустить этот трэд в begin..end библиотеки


запустить любой код реально !
только вот будет ли он (конкретный твой код) делать то, что от него ожидается - это еще бабушка надвое сказала ...


Reindeer Moss Eater   (2004-10-29 15:28:00) [99]

Реально.
Одинраз за все время существования процесса.


dms_main   (2004-10-29 15:27:00) [100]


> Reindeer Moss Eater ©   (29.10.04 15:25) [66]
> и что из этого следует???
>
> То, что кто-то до сих пор с ручника не снялся.

весь день на нервах , так что уж извиняйте.... :-)


Страницы:   1 2 3 4 5 6 7 8 9

Наверх

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