Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизРаспределение памяти в приложение Найти похожие ветки
← →
iviom (2007-07-19 16:04) [0]Здравствуйте.
У меня появилась проблема, для которой я никак не могу найти решение.
У меня есть приложение, состоящее из двух форм: главная и подчиненая. Под главной формой я имею ввиду форму, которую вызывает само приложение, а под подчиненой - форму, которая вызывается из главной.
У меня есть длл, которую я вызываю из главной и подчиненой формы, причем при вызове ее из подчиненой формы у меня возникает ошибка (access vialotion).
Длл у меня сложная, то есть это не просто форма. Для того, чтобы она работала я ее инициализирую (я передаю в нее соединение к базе данных) и передаю в нее Application.Handle приложения.
Инициализация проходит в главной форме, при это при вызове функции из dll все работает. А при вызове функции из dll из подчиненой формы происходит ошибка.
Мне кажется, что проблема не в самой программе или dll. Вероятно проблема с адресным пространством, но как к этому подойти я не могу понять.
Помогите пожалуйста разобраться или может есть какая-нибудь хорошая статься по распределении памяти на приложения?
← →
Сергей М. © (2007-07-19 16:09) [1]Про ShareMem что-нть слышал ?
← →
Сергей М. © (2007-07-19 16:09) [2]Заодно и про отладчик, встроенный в Делфи ?
← →
iviom (2007-07-19 16:10) [3]Нет, но сейчас посмотрю в гугле.
← →
Сергей М. © (2007-07-19 16:11) [4]
> сейчас посмотрю в гугле
А клавишу F1 у тебя что, мыши сгрызли ?)
← →
iviom (2007-07-19 16:12) [5]Отладчиком пользуюсь. Но в данный момент он мне не помагает, потому что когда нахожусь в dll и запускаю проект, вижу что объект не проинициализирован. Хотя только что прошла ее инициализация (но эта функция была вызвана из главной формы).
← →
Stanislav © (2007-07-19 16:13) [6]
> Сергей М. © (19.07.07 16:11) [4]
>
> А клавишу F1 у тебя что, мыши сгрызли ?)
:-))
← →
Сергей М. © (2007-07-19 16:13) [7]
> Отладчиком пользуюсь
Значит неправильно пользуешься.
← →
iviom (2007-07-19 16:13) [8]Значит в помощи. Я не сразу поняла, что это делфийская функция.
← →
Stanislav © (2007-07-19 16:14) [9]Показывай код как вызываешь, там и там, и код DLL
← →
Anatoly Podgoretsky © (2007-07-19 16:14) [10]> Сергей М. (19.07.2007 16:11:04) [4]
Огуглизировался
← →
Stanislav © (2007-07-19 16:15) [11]>>Я не сразу поняла, что это делфийская функция.
Это ты о чем?
← →
Anatoly Podgoretsky © (2007-07-19 16:15) [12]Пардон - огуглизировалася
← →
Сергей М. © (2007-07-19 16:15) [13]
> это делфийская функция.
Хм..
А когда у тебя активно окно раб.стола и ты жмакнув Ф1 видишь открытие окна справки - это тоже, надо понимать, "делфийская функция" ?
← →
Сергей М. © (2007-07-19 16:17) [14]
> Anatoly Podgoretsky
Я бы даже сказал - "огуглела"
← →
iviom (2007-07-19 16:26) [15]Хмм..
Вроде написала вполне вежливое письмо. А вы так отвечаете. Я конено, понимаю, что вас наверное за целый день достают, но зачем над другими издеваться-то?
Спасибо, вам. Люди.
← →
Сергей М. © (2007-07-19 16:29) [16]
> iviom (19.07.07 16:26) [15]
На обиженных воду возят)
Тебе был вполне конкретный намек - либо показывай код либо подробно описывай все свои действия и решения при трассировке.
А лучше и то и другое. И можно без лишнего словоблудия - только факты и никакого вранья)
← →
Stanislav © (2007-07-19 16:30) [17]Сергей М. © (19.07.07 16:29) [16]
Девушко всетаки :-)
iviom (19.07.07 16:26) [15]
Покажи хотябы заголовки процедур из DLL.
← →
Сергей М. © (2007-07-19 16:31) [18]
> Девушко
Не факт)
← →
Anatoly Podgoretsky © (2007-07-19 16:32) [19]> iviom (19.07.2007 16:26:15) [15]
Советы другого рода, вместо того чтобы лезть в Гугл, стоит сначала поискать в справке.
← →
iviom (2007-07-19 16:47) [20]Ладно, ребят. ;)
Я создалО тестовый пример и он заработал.
Соответственно ошибка рода "приложение обращается в какое-то другое адресное пространство" и прочья ерунда исключаются. А вопрос был собственно поэтому.
Так что полезла я искать глюк самостоятельно.
Спасибо хотя, что не злитесь теперя что =)
← →
Stanislav © (2007-07-19 16:53) [21]iviom (19.07.07 16:47) [20]
Ну раз сама будешь разбираться, то
Access Violation вызывается пр обращении к объекту, который еще не создан или уже уничтожен.
← →
Сергей М. © (2007-07-19 16:56) [22]
> iviom (19.07.07 16:47) [20]
Зарегистрироваться в конференции не мешало бы ..
Ведь вернешься же, как пить дать !
При твоей-то "проблеме")
И что о тебе, "оно", люди скажут опосля этого ?)
Он ить пасут тебя) .. в архивах хотя бы)
Репу-то свою почеши)..
← →
Anatoly Podgoretsky © (2007-07-19 17:00) [23]> Stanislav (19.07.2007 16:53:21) [21]
Третий вариант, создан и не уничтожен, а вот указатель испорчен, обычное дело.
← →
Stanislav © (2007-07-19 17:01) [24]Anatoly Podgoretsky © (19.07.07 17:00) [23] тоже вариант, при этом еще и утечка памяти.
← →
Сергей М. © (2007-07-19 17:06) [25]
> Stanislav © (19.07.07 17:01) [24]
>
Вопрос философского хар-ра - зависят ли AV от пола ?
← →
Stanislav © (2007-07-19 17:11) [26]Сергей М. © (19.07.07 17:06) [25]
Зависят cкорее причины возникновения AV
← →
iviom (2007-07-19 17:25) [27]
> Он ить пасут тебя) .. в архивах хотя бы)
>
> Репу-то свою почеши)..
Ох... Язык сломался, пока читала. А что имел ввиду так и не понять.
Хотя... какая разница.
← →
Stanislav © (2007-07-19 17:31) [28]iviom (19.07.07 17:25) [27]
Уже давно бы код привела.
← →
Kolan © (2007-07-19 21:52) [29]Отладь. Засунь проект и Dll в одну ProjetGroup. Тогда отладка будет работать так, как ты ожидаешь.
AV просто так не возникает.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.068 c