|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.11.2009, 12:00 | #1 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 59
|
Передача StringGrid в DLL
Здравствуйте.
Есть вопрос. создал dll, в которую передаю объект StringGrid. прототип в программе: Код:
Код:
Код:
Invali Pointer Operathion при передачи, к примеру, Memo, и в dll применят метод add к строкам все в порядке при закрытии. Последний раз редактировалось Stilet; 26.11.2009 в 12:26. |
26.11.2009, 12:27 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Попробуй procedure Init(var sg1: TStringGrid);
I'm learning to live...
|
26.11.2009, 19:16 | #3 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 59
|
я пробовал по ссылке =(
Но, что интересно, в новом приложении с подключением функции из такой же dll все работает, а когда добавляю в свою прогу, пишу транслятор, вылетает ошибка при закрытии. Комментирую вызов, все в порядке ) |
26.11.2009, 19:59 | #4 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Объекты всегда передаются по ссылке, даже если это явно не указано.
А по поводу ошибки, погугли Invalid Pointer Operathion.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
27.11.2009, 22:17 | #5 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 59
|
погуглил.
к сожалению, кроме размытых ответов ни чего не нашел. Единственное - это то, что со строками в dll нужно осторожнее работать. свойство cells не принимает PChar, да и строки из dll в прогу я передаю явно не больше 255 символов. не пойму почему в Memo они уходят нормально, а StringGrid нет... |
27.11.2009, 23:03 | #6 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
А где у вас точка выхода из DLL?
Попробуйте добавить (для гарантированной выгрузки длль-ки): Код:
Последний раз редактировалось mihali4; 27.11.2009 в 23:09. |
28.11.2009, 07:51 | #7 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 59
|
Попробовал так:
Код:
Init(StringGrid1); при выходе все равно ошибка. Последний раз редактировалось mihali4; 07.12.2009 в 15:10. |
30.11.2009, 21:46 | #8 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 59
|
Я понимаю, что ошибка при выгрузке библиотеки, конкретно, при уничтожении указателя на нее, но вот незадача, стоит туда (в библиотечную процедуру) подавать только Memo, все в порядке, а при подаче туда StringGrid, на выходе из программы ошибка.
Отзовитесь. Пишу транслятор с Qbasic, не охото инициализацию таблицы с ключевыми словами, разделителями и т.п. запихивать в основной код программы... |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
передача фрейма из dll | BESS | Компоненты Delphi | 1 | 20.04.2009 18:54 |
Передача данных из VC++ DLL в Delphi App | Kosoglaz | Общие вопросы C/C++ | 2 | 05.02.2008 10:53 |
Передача сообщения из программы в свою Dll | SergeySK | Общие вопросы Delphi | 3 | 01.11.2007 14:42 |
Передача данных(массива) через DLL. | acorables | Общие вопросы Delphi | 4 | 05.02.2007 13:16 |
передача объектов как параметров функций в Dll | Umen | Общие вопросы Delphi | 9 | 12.11.2006 19:31 |