Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Внизvar in dll Найти похожие ветки
← →
TUser © (2004-05-11 18:34) [0]Такой вопрос. Есть статически подключаемая dll. Там есть процедура, в которую передаются по ссылке (через var) параметры в т.ч. динамические массивы. Процедура проводит некие расчеты и через эти параметры возвращает результат. Эта процедура вызывается из моей проги в неком обработчике, скажем Button1Click. Все нормально раюотает, но после завершения работы обработчика возникает ошибка "Invalid floating point operation". Можно пройтись отладчиком по библиотеке и по вызывающей процедуре, можно try"ев везде понаставить - все работает нормально, ошибка возникает именно при выходе из процедуры. При этом если ту же самую процедуру оформить в unit"е, то все работает нормально. Просветите меня, plz, в чем мб дело.
← →
WebErr © (2004-05-11 18:37) [1]На каком языке написана процедура внутри dll и как Вы её вызываете?
← →
Mim1 © (2004-05-11 18:42) [2]Important note about DLL memory management: ShareMem must be the
first unit in your library"s USES clause AND your project"s (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results.
← →
TUser © (2004-05-11 19:36) [3]Написана на D7. Собственно это моя процедура.
ShareMem не используется. А он нужен для всех вообще динамических массивов, не только для строк, да?
← →
OlegGashev © (2004-05-11 21:15) [4]Используй указатели, и никаких ShareMem не нужно.
← →
DrPass © (2004-05-11 22:11) [5]
> А он нужен для всех вообще динамических массивов, не только
> для строк, да
Да
← →
Mim1 © (2004-05-12 01:18) [6][4] OlegGashev © (11.05.04 21:15)
Я бы сказал так "Четко контролируй явное распределение и не явное распределение памяти и sharedmem тебе не понадобится", хотя на самом деле считаю что для начинающего это достаточно сложно. Вот например string - указатель. После выходна за область видимости процедуры он умирает. ЕСли воспользоваться этим указателем после освобождение сами понимаете что произойдет. SharedMem устранить эту проблемму, и ряд подобных.
← →
Polevi © (2004-05-12 07:49) [7]не понимаю, почему все игнорируют COM сервера
← →
TUser © (2004-05-12 07:55) [8]Да там простая в принцыпе штука. В dll я упихал кучу всяких расчетов - зачем еще COM мутить?
Всем спасибо за ответы.
← →
Polevi © (2004-05-12 07:56) [9]COM мутить
этим все сказано
--
LMD
← →
Goida © (2004-05-12 09:40) [10]
> Polevi
Дай, пожалуйста, примерчик постороения. Если не трудно.
← →
Polevi © (2004-05-12 10:01) [11]File/New/ActiveX Library + File/New/Automation Object
← →
evvcom © (2004-05-12 10:09) [12][11] + литературу по COM почитать для понимания того, что делаешь.
← →
Goida © (2004-05-12 13:25) [13]
> Polevi
А можно с помощью ActivX сделать MDI-форму, которая будет храниться отдельно от приложения?.. В D7 есть ActiveX From - это то, в чем нужно копаться?
← →
Polevi © (2004-05-12 13:27) [14]да
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c