Если какой-то элемент класса используется в функции имеющей In и Out. В каких случаях надо Out заводить обратно в класс, а в каких можно его проигнорировать (см. картинки)?
Из собственного опыта - можно обратно не заводить DAQmx task, VISA, очереди, refnum открытых файлов, reference на индикаторы и контролы (главное их при выходе из программы тоже закрыть).
Зато когда работал с БД пока я не стал заводить Out обратно у меня были сплошные ошибки.
Кто что скажет?
Out обратно в класс
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Out обратно в класс
- Вложения
-
- s1.PNG (4.33 КБ) 2794 просмотра
-
- s2.PNG (3.87 КБ) 2794 просмотра
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: Out обратно в класс.
С БД не работал. Ссылочные типы можно не заводить. Если объект класса дальше используется по значению, то конечно же заводить.
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Out обратно в класс
Да, конечно я имел ввиду ссылочные объекты (DAQmx task, VISA, очереди, refnum открытых файлов, reference на индикаторы и контролы). Никогда не заводил их обратно в класс, т.к. если заводить - блок-диаграмма становится менее упорядоченной, переполненной проводами.
Но вот пока все выходы функций Database Toolkit обратно в клас не завёл - наблюдал ошибки.
Как понять какой объект перед нами - чисто ссылочный или использующий значения?
Вот например refnum открытых файлов - чисто ссылочный объект?
Но вот пока все выходы функций Database Toolkit обратно в клас не завёл - наблюдал ошибки.
Как понять какой объект перед нами - чисто ссылочный или использующий значения?
Вот например refnum открытых файлов - чисто ссылочный объект?
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: Out обратно в класс
refnum открытых файлов чисто ссылочный. Правда стоить сделать оговорку: LV refnum'ы это само собой не просто указатель на объект.
P.S: самый простой способ понять объект ссылочный или нет- заглянуть в палитру refnum controls
А так каждый объект имеет дескриптор типа (у refnum они 0x00 - 0x19 и еще дальше какие-то типа 0x1B)
P.S: самый простой способ понять объект ссылочный или нет- заглянуть в палитру refnum controls
А так каждый объект имеет дескриптор типа (у refnum они 0x00 - 0x19 и еще дальше какие-то типа 0x1B)
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Out обратно в класс
Вопрос скорее не про классы, а про reference -ы. НЯЗ, ни одна из , принимающих Refnum и выдающих dup refnum не меняет значение refnum.
Т.е. если функция не подставляет новый объект (например заменяет одну очередь на другую), то можно не заводить refnum обратно в класс.
Большинство refnum вроде просто 32-битное число (как в 64-битной LV - не смотрел).
Т.е. если функция не подставляет новый объект (например заменяет одну очередь на другую), то можно не заводить refnum обратно в класс.
Большинство refnum вроде просто 32-битное число (как в 64-битной LV - не смотрел).
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Out обратно в класс
Что такое НЯЗ?
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Out обратно в класс
НЯЗ = Насколько Я Знаю = AFAIK.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows