![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| morpheyushka |
|
||||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
Помогите разобраться при вызове формы из dll вылетает ошибка "Invalid window handle". Гугл лопатил - ничего толкового не нашол
Код отображения формы:
Обработчик кнопочки (тестовый), который должен вызывать окно:
|
||||
|
|||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
а это зачем? На какой операции вылетает ексепшен? -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| morpheyushka |
|
|||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
щас попробую посмотреть на какой команде вылетает
Добавлено через 8 минут и 11 секунд Посмотреть на какой именно команде вылетает не могу так как ошибка возникает когда я пытаюсь вызвать процедуру из длл. А усли не выполнить следующий код:
то возникает ошибка - "CoInitialize has not been called" |
|||
|
||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
Вызывай ручками. Находиться вроде в ActiveX.
На сколько я помню достаточно dll включить в группу проекта, и все будет нормально отлаживаться. -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
| morpheyushka |
|
|||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
Нет, всё равно при попытки вызова процедуры вылетает ошибка - в тело не заходит. А куда вставить CoInitialize(0)? |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
в принципе куда угодно, лишь бы до востребованости. Вставляй в сеуцию initialization, не прогадаешь -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| morpheyushka |
|
|||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
Нет, увы не тут копать нужно - не помогает
Какие ещё идеи есть? |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
morpheyushka,
ну тады выкладывай весь код dll -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| morpheyushka |
|
|||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
|
|||
|
||||
| cemick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 6 |
У dll свой апликайшен, попробуй присваивать не Handle, а TApplication. Сделай в dll в вот так:
И вызывай Init перед созданием своей формы |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
morpheyushka, маловато будет.
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| morpheyushka |
|
||||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
а вот так в отдельном модуле я провожу инициализацию.... Код главного модуля проекта:
Добавлено через 10 минут и 5 секунд ой...не заметил пост cemick'a...щас попробую и отпишу |
||||
|
|||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
так, погодь. так dll или exe у тя? -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| morpheyushka |
|
|||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
2 cemick, а как вызывать форму?
Добавлено через 7 минут и 53 секунды
Ща разъесню...я сделал проект и там всё классно работает. Но мне потом сказали чтобы я зафигарил всё это в dll. Ну вот я и создал dll и давай туда пихать свой проект что бы не переделывать всё заново. Ну естественно фигня выходит полная. Самое интересное, что вторая часть программы, которая запускается на клиентской машине нормально запихнулась в dll и всё работает. Сделано всё идентично. Просто в серверной части я использовал ADO и по этому, как я понял, мне сначало выбивало ошибку "CoInitialize has not been called". Когда я сделал инициализацию - начало ругаться на кривой хэндл окна ну и вот я со своей проблемой тут! |
|||
|
||||
| morpheyushka |
|
|||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
Так ничего и не помогает при переборе всех вышеперечисленных вариантов получаю две ошибки:
Это сообщение отредактировал(а) morpheyushka - 28.5.2008, 13:20 |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |