Страница: 1 |
Страница: 1 |
Вопрос: Про dll'ки
Добавлено: 08.09.04 17:24
Автор вопроса: Mihalыch | ICQ: 373-509-101
Подскажите, кто может!!! Вопрос такой: есть dll’ка, в которую передаю данные, после чего она пишет их в базу данных. Можно ли после передачи ей данных отсоединиться от неё, типа пусть она себе пишет в базу а я займусь “тякучкой”. Ведь если Set dllName = Nothing, то она и не запишет ни чего, или нет?
Всем заранее спасибо!
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 08.09.04 19:34
А DLL-ка на чём?
Можно только в одном случае - если создаёт отдельный поток для своих вычислений. При загрузке библиотека становится частью программы. Т.е. программа увеличивается на размер библиотеки. В общем ты понял что будет при её отсоединении.
Может быть можно создать для неё временный процесс. Тогда она будет выполняться в потоке этого процесса и не будет усыплять основную программу.
Номер ответа: 2
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #2
Добавлено: 08.09.04 19:46
А что такое dllName? Переменная? Если да, то какое имеет отношение переменные к выполнению процедуры в dll? Да и не видя кода, что можно посоветовать? Как вызываешь? Что в dll? Возвращаются какие-либо данные или нет?
Номер ответа: 3
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #3
Добавлено: 08.09.04 20:06
dllName – я имел ввиду это:
 im WithEvents dbdrv As TestDbDriver
Set dbdrv = New TestDbDriver
For i=0 to Ubound(aMass)
‘сдесь в цикле передаются данные
Next i
dbdrv.SaveResults ’команда на сохранение
‘ вот здесь программа подвисает, пока не закончится сохранение данных
Номер ответа: 4
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #4
Добавлено: 08.09.04 20:12
З.Ы. Совсем забыл в жизни будет так, модуль передающий данные находится на одном компьютере а dll’ка и база данных на другом. Правда в таком варианте еще не испытывал, дома нет сети, пробовать пойду завтра.
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 08.09.04 20:35
Для этого существуют потоки, но они не для VB
И как ты можешь отключить длл, пока она не возвратит управление твоей программе?
Номер ответа: 6
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #6
Добавлено: 08.09.04 20:53
Я имел ввиду не отключить, а как то передать управление обратно программе, как например это может делать ф-я PlaySound если ей передать флаг SND_ASYNC. DoEvents тоже не помогла. Ладно придется ProgressBar попросить.
Всем спасибо!
Номер ответа: 7
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #7
Добавлено: 08.09.04 21:31
СОздавай, скажем, dll файл на другом языке, скажем Си, создай там поток отдельный и выполни в нем нужный тебе код... Готового решения нет...
Номер ответа: 8
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #8
Добавлено: 09.09.04 12:42
http://www.vbaccelerator.com/home/VB/Code/Libraries/Threading/Multi-threading_using_classes_in_ActiveX_EXEs/article.asp