|
|
|
DLL явная загрузка
|
|||
|---|---|---|---|
|
#18+
проблема в следующем. После того, как DLL загрузилась, все отработало, вызываю FreeLibrary - прога виснет и все. Что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 14:58 |
|
||
|
DLL явная загрузка
|
|||
|---|---|---|---|
|
#18+
Одно из двух: 1) В FreeLibrary отдаешь неверный хендл 2) DLL требует перед завершением своей работы вызова какой-то dll_finish() процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 18:07 |
|
||
|
DLL явная загрузка
|
|||
|---|---|---|---|
|
#18+
хендл тот же, а что есть dll_finish() процедура? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 22:16 |
|
||
|
DLL явная загрузка
|
|||
|---|---|---|---|
|
#18+
Когда DLL начинает работать она может (не обязательно конечно, но может) выделить себе собственную память, занять самостоятельно какие-то ресурсы потребные для внутренних нужд DLL. Обычно такие DLL имеют в себе пару функций, одна для выделения памяти, другая для освобождения. Они могут называться по разному, например init/fini, или dll_load/dll_unload или что-нибудь вроде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 22:23 |
|
||
|
DLL явная загрузка
|
|||
|---|---|---|---|
|
#18+
авторОни могут называться по разному, например init/fini, или dll_load/dll_unload или что-нибудь вроде. Эта функция называется DllMain RTFM DLL_PROCESS_ATTACH, DLL_PROCESS_DETACH ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 13:20 |
|
||
|
DLL явная загрузка
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) авторОни могут называться по разному, например init/fini, или dll_load/dll_unload или что-нибудь вроде. Эта функция называется DllMain RTFM DLL_PROCESS_ATTACH, DLL_PROCESS_DETACH Нет, дорогой мой Глюк. DllMain это процедура которая может выполнять все вышеописаные действия, но она не обязательна существует в dll. Если она существует, то ее обычно вызывает сама система во время LoadLibrary/FreeLibrary. Пользовательская программа может даже не знать что в dll есть такая процедура. Но кроме DllMain во многих dll делают еще и процедуры "пользовательского уровня" для инициализации и шатдауна dll. Иногда эти процедуры являются врапперами, а иногда даже и алиасами для DllMain. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 17:52 |
|
||
|
DLL явная загрузка
|
|||
|---|---|---|---|
|
#18+
kickdownпроблема в следующем. После того, как DLL загрузилась, все отработало, вызываю FreeLibrary - прога виснет и все. Что я делаю не так? Ты не имеешь право вызывать FreeLibrary, когда код библиотеки еще работает. Надо сначала выйти из стека наружу библиотеки. Так например, если есть окно, код которого находится в некой DLL, то можно было бы например делать типа такого : Код: plaintext 1. 2. 3. 4. 5. Но это непаравильно. Нужно изображать что-то типа Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 19:50 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=390&tid=2032695]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
15ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 285ms |

| 0 / 0 |
