| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Вызов формы из dll |
| Автор: morpheyushka 28.5.2008, 10:00 | ||||
| Помогите разобраться при вызове формы из dll вылетает ошибка "Invalid window handle". Гугл лопатил - ничего толкового не нашол Код отображения формы:
Обработчик кнопочки (тестовый), который должен вызывать окно:
|
| Автор: Rennigth 28.5.2008, 10:54 |
а это зачем? На какой операции вылетает ексепшен? |
| Автор: morpheyushka 28.5.2008, 11:03 | ||
| щас попробую посмотреть на какой команде вылетает Добавлено через 8 минут и 11 секунд Посмотреть на какой именно команде вылетает не могу так как ошибка возникает когда я пытаюсь вызвать процедуру из длл. А усли не выполнить следующий код:
то возникает ошибка - "CoInitialize has not been called" |
| Автор: morpheyushka 28.5.2008, 11:23 | ||
Нет, всё равно при попытки вызова процедуры вылетает ошибка - в тело не заходит. А куда вставить CoInitialize(0)? |
| Автор: Rennigth 28.5.2008, 11:25 |
в принципе куда угодно, лишь бы до востребованости. Вставляй в сеуцию initialization, не прогадаешь |
| Автор: morpheyushka 28.5.2008, 11:34 |
| Нет, увы не тут копать нужно - не помогает Какие ещё идеи есть? |
| Автор: Rennigth 28.5.2008, 11:36 |
| morpheyushka, ну тады выкладывай весь код dll |
| Автор: morpheyushka 28.5.2008, 11:38 | ||
|
| Автор: cemick 28.5.2008, 11:47 | ||
У dll свой апликайшен, попробуй присваивать не Handle, а TApplication. Сделай в dll в вот так:
И вызывай Init перед созданием своей формы |
| Автор: Rennigth 28.5.2008, 11:49 |
| morpheyushka, маловато будет. |
| Автор: morpheyushka 28.5.2008, 12:08 | ||||
а вот так в отдельном модуле я провожу инициализацию.... Код главного модуля проекта:
Добавлено через 10 минут и 5 секунд ой...не заметил пост cemick'a...щас попробую и отпишу |
| Автор: Rennigth 28.5.2008, 12:29 |
так, погодь. так dll или exe у тя? |
| Автор: morpheyushka 28.5.2008, 12:30 | ||
| 2 cemick, а как вызывать форму? Добавлено через 7 минут и 53 секунды
Ща разъесню...я сделал проект и там всё классно работает. Но мне потом сказали чтобы я зафигарил всё это в dll. Ну вот я и создал dll и давай туда пихать свой проект что бы не переделывать всё заново. Ну естественно фигня выходит полная. Самое интересное, что вторая часть программы, которая запускается на клиентской машине нормально запихнулась в dll и всё работает. Сделано всё идентично. Просто в серверной части я использовал ADO и по этому, как я понял, мне сначало выбивало ошибку "CoInitialize has not been called". Когда я сделал инициализацию - начало ругаться на кривой хэндл окна ну и вот я со своей проблемой тут! |
| Автор: morpheyushka 28.5.2008, 13:20 |
Так ничего и не помогает при переборе всех вышеперечисленных вариантов получаю две ошибки:
|
| Автор: X-Vlad 29.5.2008, 09:11 | ||||
DLL
EXE
|
| Автор: morpheyushka 3.6.2008, 10:54 |
| О...получилось - спасибо) |