Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
8-1078767391
DDA
2004-03-08 20:36
2004.05.23
Изображение на изображение с инверсией цвета


3-1083244047
GEN
2004-04-29 17:07
2004.05.23
БД Access, проблема переноса на другую машину


3-1082975508
Timon
2004-04-26 14:31
2004.05.23
Опять DBGRID. Помогите пожалуйста. Как сделать в DBGRID-е чтобы


14-1083759377
ele-lena
2004-05-05 16:16
2004.05.23
ImagExpress. Где взять?


1-1083750540
Alek_1
2004-05-05 13:49
2004.05.23
А как использовать DECIMALDIGITS?