Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Вниз

Как выполнить финанльные операции в DLL пр ее выгрузке из памяти?   Найти похожие ветки 

 
Rudis   (2004-09-02 14:08) [0]

В общем проблема такая, имеется ряд DLL-ок с однотипными процедурами, создания формы, удаления ее и задания хендла для IBDataBase. Все однотипно, только содержимое форм разное. При выгрузке динамически подгруженных библиотек происходит ошибка. DLLProc  использовал, когда выгружаю одну DLL-ку - проблем нет, но если у меня их две то после выгрузки ругается на попытку чтения для несуществующего элемента. Что любопытно, адрес DLLProc, пока не поменял, я сохраняю в локальной переменной в DLL-ке, но он nil, хоть до этого я предыдущий и назначал.


 
Digitman ©   (2004-09-02 14:25) [1]


> хоть до этого я предыдущий и назначал


"до этого" - это когда ?


 
kaZaNoVa   (2004-09-02 14:27) [2]

в делфе - у меня не разу не получалось !
вот на асме , си, dll_process_datach (как-то так) пашет ....
а на делфе что-то не хочет ...


 
Rudis   (2004-09-02 14:50) [3]

> "до этого" - это когда ?

Ну, может малость сумбурно излагаю, голова уже не варит, третьи сутки мудохаюсь над этим, а время гонит, еще вчера прогу установить должен был.

Имеется ввиду, что я в каждой загружаемой ДЛЛ-ке сохраняю прежнее значение DLLProc, и опосля всего ее восстанавливаю.
Как говорится на всякий який...
Так вот, при выгрузке одной из библиотек все ок, а как выгружаю вторую - так гемор, ацесс виолейшн. А мне таких штук 10-15 надо.
Может недопонимаю как DLLProc работает? (Более чем вероятно)
Но что то делать нужно...


 
Rudis   (2004-09-02 14:56) [4]

Я только сейчас подумал, а не от того ли это, что я Application.Handle в ДЛЛ-ке меняю на Хендл проги, но не восстанавливаю при выгрузке? К сожалению проверить до вечера не смогу, с собой исходников на работе нету...
Может еще какие варианты есть подскажите, авось до завтрешнего утра получится сделать...


 
Digitman ©   (2004-09-02 15:02) [5]


> Может недопонимаю как DLLProc работает? (Более чем вероятно)


скорей всего так и есть


> сохраняю в локальной переменной в DLL-ке


и эта переменная, будь она хоть локальная хоть глобальная, имеет смысл только для ДАННОГО экземпляра ДЛЛ ... в других экземплярах ДЛЛ эта переменная - своя, и она не имеет ничего общего с аналогичными по назначению переменными в прочих загружаемых экз-рах ДЛЛ

имеется ввиду, что если в 1.dll и в 2.dll была декларирована некая переменная old_dllproc: Pointer, то при однократных LoadLibrary("1.dll") и LoadLibrary("2.dll") в контекстах различных процессов системой будут созданы две совершенно независимых области памяти в секциях инициализированных данных каждого из этих процессов



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

Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.033 c
14-1095459260
123
2004-09-18 02:14
2004.10.10
ЭВМ былых времен.


14-1095837337
Romkin
2004-09-22 11:15
2004.10.10
Первый Прототип Персонального Компьютера


4-1094106544
Алексей
2004-09-02 10:29
2004.10.10
Как узнть активный язык ввода в другом приложении?


3-1095160139
/glokk
2004-09-14 15:08
2004.10.10
вьювы из хп :(


1-1095952653
Prokop
2004-09-23 19:17
2004.10.10
TquikcReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский