Главная страница
    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.47 MB
Время: 0.037 c
11-1071442374
Dimaxx
2003-12-15 01:52
2004.05.23
Работа с памятью: KOL vs МСД


1-1084350344
glGLU
2004-05-12 12:25
2004.05.23
Menu


7-1078333405
Makhanev A.S.
2004-03-03 20:03
2004.05.23
User Session Change...


1-1083748083
ASMiD
2004-05-05 13:08
2004.05.23
Определение цвета прямоугольника


1-1083932811
Magician
2004-05-07 16:26
2004.05.23
Как добавить картинку в DrawGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский