|
|
|
FreeLibrary
|
|||
|---|---|---|---|
|
#18+
Доброе время суток! Загружаю библиотеку LoadLibrary(Lib), после этого загружаю функцию GetProcAddress из этой библиотеки и она долго выполняется, после этого по отдельной кнопке я делаю FreeLibrary(Lib). FreeLibrary - выгружает истину (типа выгрузилась библиотека), но на самом деле код функции загруженной из этой библиотеки исполняется. Подскажите как мне остановить эту функцию, если библиотека стороннего разработчика и я не могу добраться до ее кода??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 12:42 |
|
||
|
FreeLibrary
|
|||
|---|---|---|---|
|
#18+
KVAru Подскажите как мне остановить эту функцию, если библиотека стороннего разработчика и я не могу добраться до ее кода??? Попробуй запустить в отдельном потоке и прибить вместе с потоком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 12:52 |
|
||
|
FreeLibrary
|
|||
|---|---|---|---|
|
#18+
Под настольный компьютер так и делал вот под Pocket не выходит. Нужна альтернатива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 12:56 |
|
||
|
FreeLibrary
|
|||
|---|---|---|---|
|
#18+
KVAruПод настольный компьютер так и делал вот под Pocket не выходит. Нужна альтернатива. Таких вопросов не возникало, но я бы начал с этого: авторhe FreeLibraryAndExitThread function decrements the reference count of a loaded dynamic-link library (DLL) by one, and then calls ExitThread to terminate the calling thread. The function does not return. The FreeLibraryAndExitThread function gives threads that are created and executed within a dynamic-link library an opportunity to safely unload the DLL and terminate themselves. VOID FreeLibraryAndExitThread( HMODULE hLibModule, // dynamic-link library whose reference count is to decrement DWORD dwExitCode // exit code for thread ); Parameters hLibModule Specifies the dynamic-link library module whose reference count the function decrements. dwExitCode Specifies the exit code for the calling thread. Return Values The function has no return value. The function does not return. Invalid hLibModule handles are ignored. Remarks The FreeLibraryAndExitThread function is implemented as: FreeLibrary(hLibModule); ExitThread(dwExitCode); Refer to the reference pages for FreeLibrary and ExitThread for further information on those functions. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 13:10 |
|
||
|
FreeLibrary
|
|||
|---|---|---|---|
|
#18+
KVAru Загружаю библиотеку LoadLibrary(Lib), после этого загружаю функцию GetProcAddress из этой библиотеки и она долго выполняется, после этого по отдельной кнопке я делаю FreeLibrary(Lib). FreeLibrary - выгружает истину (типа выгрузилась библиотека), но на самом деле код функции загруженной из этой библиотеки исполняется. Я уж не помню когда там FreeLibrary возвращает истину, но то что она не гарантирует выгрузку библиотеки из памяти, это точно. Она только уменьшает счетчик ссылок на библиотеку, а вот если он становится нулем, тогда библиотека выгружается. Так что как ни странно, гарантированно выгрузить библиотеку с помощью FreeLibrary невозможно (без ошибок в приложении). Вот дока по ней : FreeLibrary The FreeLibrary function decrements the reference count of the loaded dynamic-link library (DLL). When the reference count reaches zero, the module is unmapped from the address space of the calling process and the handle is no longer valid. BOOL FreeLibrary( HMODULE hModule ); Parameters hModule [in] Handle to the loaded DLL module. The LoadLibrary or GetModuleHandle function returns this handle. Return Values If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. Ну вот, как видно, она вернет FALSE только если ей передаешь неправильный HANDLE и она fails. KVAru Подскажите как мне остановить эту функцию, если библиотека стороннего разработчика и я не могу добраться до ее кода??? Надо использовать соответствующий API этой библиотеки. Если его нет, то некриво это никак не сделать. Ищи другой путь для этого, путь, который ты подразумеваешь, неправильный. Нельзя работающую библиотеку взять и выгрузить из памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 13:46 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2031332]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 359ms |

| 0 / 0 |
