|
|
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
ziv-2014Bred eFeM, IsMultiThreaded = true Идея с доп. классом вполне себе оправдала Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Есть некоторые побочные эффекты 1. Приложения НУ ОЧЕНЬ долго закрывается - если без потока в течении 0.7-1 сек - после применения приема с потока и доп. классом 10-12 сек 2. После применения приема с потоком - сворачиваем основную форму (или переопределяем фокус на любое другое окно операционной системы) и вновь разворачиваем форму или возвращаем фокус на окно приложения Имеем системную ошибку доступа к памяти, похожую на ту , которая возникает при обращении к методу уже от-Free - го объекта. Т.е. как будто в "нити сообщений" осталась ссылка на Handle окна TDLLThreadSync А как ее убрать мне не ясно - можите что-то подсказать ? Спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 22:51 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
HOME_X, 1. попробуй сделать окно сам, без AllocateHWnd (см HWND_MESSAGE), у тебя всё равно привязки к объекту в обработчике нет да и вообше класс там излишен достаточно же двух методов по типу StartSupport\ EndSupport 2. WM_NULL замени на что нить другое, самое правильное будет использовать для генерации RegisterWindowMessage - нехорошо в чужом приложении использовать известные константы, особенно которые довольно специфичеки обрабатываются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 12:07 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
ziv-2014Bred eFeM, IsMultiThreaded = true +1 убедитесь, что в DLL в блоке begin..end устанавливается IsMultiThread := True иначе ваш секс с Thread в DLL будет не только безудержным, но еще и нескончаемым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 12:23 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
b0rkziv-2014Bred eFeM, IsMultiThreaded = true +1 убедитесь, что в DLL в блоке begin..end устанавливается IsMultiThread := True иначе ваш секс с Thread в DLL будет не только безудержным, но еще и нескончаемым Господа советчики, а вы хоть раз заглядывали в beginthread? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 12:58 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
wadman, я, например, не использую BeginThread, как и разные костыли типа TThread. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 13:19 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
ёёёёёя, например, не использую BeginThread, как и разные костыли типа TThread.Ты ещё скажи что классы не юзаешь и вообще менеджером памяти в делфи не пользуешься... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 14:18 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
wadmanb0rkпропущено... +1 убедитесь, что в DLL в блоке begin..end устанавливается IsMultiThread := True иначе ваш секс с Thread в DLL будет не только безудержным, но еще и нескончаемым Господа советчики, а вы хоть раз заглядывали в beginthread? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Дело далеко не только в старте потоков. Если в dll первый вызов BeginThread произойдет после того, как эту dll уже юзают несколько потоков (что вполне часто бывает), или вызовов BeginThread в этой dll вообще не предвидится, то плохо будет всё равно, и спасёт только b0rkубедитесь, что в DLL в блоке begin..end устанавливается IsMultiThread := True ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 16:47 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
YuRock, +1E10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 17:25 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)HOME_X, 1. попробуй сделать окно сам, без AllocateHWnd (см HWND_MESSAGE), у тебя всё равно привязки к объекту в обработчике нет да и вообше класс там излишен достаточно же двух методов по типу StartSupport\ EndSupport Доброго дня kealon(Ruslan) Попытался изобразить взаимодействие из двух методов Как правильно послать сообщение об окончании потока PostMessage(Form1.Handle, Wm_Finished, 1, LParam(Param)); - не доходит до адресата procedure WmFinished(var Msg: TWmFinished); не выполняется Заранее благодарен ! Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2019, 10:10 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
HOME_X, Реализовал такой обработчик - но не ясно почему первый вариант с WmFinished не работает Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2019, 11:50 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
HOME_XHOME_X, Реализовал такой обработчик - но не ясно почему первый вариант с WmFinished не работает Очевидно, потому что надо читать справку: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2019, 13:20 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
HOME_X, Как вы думаете, эти записи по размерам совпадают?.. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Это такой жирный намёк, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2019, 13:23 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
alekcvpЭто такой жирный намёк, да. Вариант взят из IE delphi-учебника ... Первичный синтаксис немного удивил .... но передать СВОЙ тип параметра (TWmFinished) "расположил" к применению (может версии постарше ????!!!!) Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2019, 13:56 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
HOME_X, я же вам не это советовал вот простой пример создания окна - тынц . У вас окно будет ещё проще, ничего делать не надо кроме обработки одного сообщения и инициализации нулями практически всего "класса окна" Код: plaintext при выходе, в обратном порядке финализируете зарегать окно можно в блоке инициализации, дерегистрировать его только не забудьте в блоке финализации, иначе если dll-ку несколько раз загрузят-выгрузят будет облом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 07:40 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
HOME_X, 2. какой Application.OnMessage ? кто его вызывать будет в чужом приложении? 3. а что за приложение то? может там у вас вообще какое-ни будь нетовское приложение и будет кидать вашу нить обработки по всем потокам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 07:44 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
HOME_XПервичный синтаксис немного удивил .... но передать СВОЙ тип параметра (TWmFinished) "расположил" к применению (может версии постарше ????!!!!) Спасибо В обработчиках сообщений всегда передаётся TMessage. Все остальные TWmXxx* созданы только для того чтобы удобнее было интерпретировать параметры. Если вы на на их посмотрите, то увидите что это по-факту те же TMessage, только параметры называются по-разному и, иногда, разбиты на более мелкие (т.е. вместо одного Integer поля стоят два SmallInt, например). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 09:56 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
alekcvpВ обработчиках сообщений всегда передаётся TMessage Чуть иначе. Передается только Word (команда), а что за ним следует - может быть чем угодно. См. TObject.Dispatch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 10:16 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
wadmanalekcvpВ обработчиках сообщений всегда передаётся TMessage Чуть иначе. Передается только Word (команда), а что за ним следует - может быть чем угодно. См. TObject.Dispatch TObject.Dispatch анализирует только первые два байта и передаёт дальше. Я с удовольствием посмотрю на код, который передаёт сообщение не с WPARAM/LPARAM, а с какой-нибудь TXXMessage нестандартного размера, учитывая что последнее поле там - LRESULT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:27 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
alekcvpЯ с удовольствием посмотрю на код, который передаёт сообщение не с WPARAM/LPARAM Например: Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 11:36 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
wadmanalekcvpЯ с удовольствием посмотрю на код, который передаёт сообщение не с WPARAM/LPARAM Например: Код: pascal 1. 2. 3. 4. 5. 6. 7. Замечательно. Как вы это сообщение теперь в другое окно передадите? Чтобы оно его обработало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 16:05 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
alekcvpwadmanпропущено... Например: Код: pascal 1. 2. 3. 4. 5. 6. 7. Замечательно. Как вы это сообщение теперь в другое окно передадите? Чтобы оно его обработало? Если быть точным, то виндовыми апи это (и многое другое) можно передать доработав обработчик WndProc. Методу Dispatch доработки не нужны, он любую структуру толкает дальше. У меня эта структура используется для общения между потоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 16:46 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
да так же приведением и передаст, если выравнивание дефолтное не выключит передать же "с побольше размером" вообще проблем нет, DefaultHandler про них "не знает" и не обработает не флеймите попусту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 17:45 |
|
||
|
DLL - Thread и безудержный секс
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)не флеймите попусту Хорошо, постараемся. kealon(Ruslan)да так же приведением и передаст, если выравнивание дефолтное не выключит Через PostMessage? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 07:46 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39879052&tid=2038889]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 323ms |

| 0 / 0 |
