Текущий архив: 2007.10.21;
Скачать: CL | DM;
ВнизDLL и её вызовы Найти похожие ветки
← →
0x00bin (2007-09-26 17:25) [0]У меня есть отдельная dll библиотека, в одной из процедур на вход подается запись с числовыми переменными и WideString (ShareMem не использую), эта запись передается по ссылке (var) и в этой процедуре переменные записи меняются.
Например: .WideString := .WideString + IntToStr(Random(255)) + #10;
А в приложении я динамически загружаю эту библиотку, забираю адрес для вызова процедуры.
В приложении есть массив простых классов. Если рассмотреть работу отдельного класса - то она заключается в вызове процедуры из dll по известному адресу и показу результатов.
Вопрос такой: я формирую этот массив классов, все создаю и они все начинают в результате работы взаимодействовать с dll, что произойдет? Реально ли сделать их работу в таком режиме?
← →
Вася Правильный (2007-09-26 17:53) [1]
> WideString (ShareMem не использую)
мазохизт? любитель граблей?
← →
0x00bin (2007-09-26 18:37) [2]А что в этом плохого? И как это может повлиять на мою ситуацию, ну буду использовать PChar?
← →
Вася Правильный (2007-09-26 18:53) [3]
> как это может повлиять на мою ситуацию
прямо
просто не будет работать
← →
Сергей М. © (2007-09-27 08:19) [4]
> ShareMem не использую
> в этой процедуре переменные записи меняются
Здесь тебя ждет засада, если взаимодействующие модули не используют один и тот же экз-р RTL.
← →
Сергей М. © (2007-09-27 08:31) [5]Точнее в этот раз засаду ты минуешь, но как только изменишь WideString на String и "числовые переменные" на данные с управляемым временем жизни, проблемы тебе будут обеспечены)
← →
0x00bin (2007-09-27 08:42) [6]А в остальном будет нормальное функционирование? Я просто не думал, что у меня получится такое всзимодействие, когда несколько классов одновеременно обращаются к библиотеке...
← →
Сергей М. © (2007-09-27 08:46) [7]
> не думал, что у меня получится такое всзимодействие, когда
> несколько классов одновеременно обращаются к библиотеке
А какая разница - один или несколько классов ?
← →
0x00bin (2007-09-27 09:06) [8]Ну не знаю, поэтому и спрашиваю. Я далеко не профи.
Задам ещё вопрос не в тему. Опять же есть массив классов. И есть внешняя функция (которая находится вне класса), и все начинают её вызывать.
А если я эту внешнюю функцию внесу в класс. Чем поведение изменится в этих двух ситуациях? Т.е. во втором случае в каждом своя функция, а в первом общая.
← →
0x00bin (2007-09-27 09:09) [9]И про мой вопрос с dll, а же думал, что под каждый созданный в массиве класс нужно jnltkmyj загружать одну и ту же dll. А у меня единственная загрузка dll а дальше я просто передаю в классы адрес вызова из dll. Это нормально?
← →
Сергей М. © (2007-09-27 09:17) [10]
> Опять же есть массив классов
Так классов или объектов (т.е. экземпляров некоего одного и того же класса или неких разных классов) ? Определись уже, это разные вещи...
> у меня единственная загрузка dll а дальше я просто передаю
> в классы адрес вызова из dll. Это нормально?
Для однопоточного приложения на первый взгляд это вполне нормально.
← →
0x00bin (2007-09-27 09:32) [11]
> Так классов или объектов (т.е. экземпляров некоего одного
> и того же класса или неких разных классов) ? Определись
> уже, это разные вещи...
Экземпляров одного и того же класса.
← →
Сергей М. © (2007-09-27 09:38) [12]
> думал, что под каждый созданный в массиве класс нужно jnltkmyj
> загружать одну и ту же dll
В определенных случаях это м.б. вполне оправданным решением.
Страницы: 1 вся ветка
Текущий архив: 2007.10.21;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.048 c