Lazarus блокирует dll для доступа из других приложений.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
tryexceptend
незнакомец
Сообщения: 4
Зарегистрирован: 14.04.2014 23:11:04

Lazarus блокирует dll для доступа из других приложений.

Сообщение tryexceptend »

Здравствуйте. У меня происходит такая ситуация. Есть dll для доступа к БД. Скада использует ее для чтения данных. Если из своей программы вызываю функцию из этой dll то скада виснит, поскольку видимо Lazarus блокирует ее для себя. Что можно попробовать, что бы такого не происходило и я мог вызывать dll без монопольного доступа?
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Lazarus не блокирует dll для доступа из других приложений. Вы либо не умеете пользоваться этой длл, либо длл не предназначена для многопоточного использования, либо скада или ваше приложение запрашивает монопольный доступ к БД, например.
tryexceptend
незнакомец
Сообщения: 4
Зарегистрирован: 14.04.2014 23:11:04

Сообщение tryexceptend »

Хотел бы согласиться, но пробовал с Delphi и там такой проблемы нет.
alexey38
долгожитель
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Сообщение alexey38 »

tryexceptend писал(а):Хотел бы согласиться, но пробовал с Delphi и там такой проблемы нет.

Работа с DLL под виндой возможна только через WinAPI: LoadLibrary и т.п. Компилятор на это не может влиять.

Поэтому копайте в сторону использования вами этой DLL, Вы судя по всему что-то делаете не так. При этом что за Скада, что за библиотека (DLL), что за функцию Вы вызываете, с какой БД работает Скада и с какой работаете Вы? И что значит "скада виснет"?
Ответить