Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-1080878640
Tornado
2004-04-02 08:04
2004.05.23
Сообщения Windows


1-1083867453
Ирина
2004-05-06 22:17
2004.05.23
дата в DateTimePicker


3-1083311033
Alina
2004-04-30 11:43
2004.05.23
TDateTime в DBGrid e


6-1080817720
Delpher_Gray
2004-04-01 15:08
2004.05.23
Блокирующиеся сокеты


7-1081741448
[Slider]
2004-04-12 07:44
2004.05.23
Слежение за входом в систему





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский