2016-04-11 4 views
0

У меня есть приложение LabView, которое использует внешнюю C DLL. Когда я запускаю свое приложение в среде разработки, DLL блокируется даже после закрытия приложения.LabView не выгружает dll при вызове в среде разработки

Когда я хочу перезаписать или удалить DLL, я должен полностью закрыть LabView.

Это известная проблема? Может ли кто-нибудь предложить решение этой проблемы?

ответ

4

Да, вы должны сделать две вещи в вашем приложении LabVIEW:

  1. Укажите путь к библиотеке на блок-схеме, а не в диалоге конфигурации (который изменяет поведение Labview от нагрузки время связывания для запуска - привязка времени).
  2. Когда вы закончите использовать узел DLL, проведите нулевой путь, чтобы сообщить LabVIEW, что вы сделали с ним (что приводит к тому, что счетчик ссылок Windows уменьшится до 0, и ОС разблокирует файл).

Подробнее здесь: Can I Dynamically Load and Unload a DLL in LabVIEW?

+0

Это не так много «известная проблема» как «дизайнерское решение». LabVIEW имеет единый процесс как для запуска кода, так и для IDE, в отличие от других отладчиков, у которых есть отдельный процесс. Это упрощает некоторые вещи и делает других сложнее. Но это преднамеренный выбор дизайнеров. – srm