Ошибка: pure virtual function called

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
dudarev
interested
interested
Сообщения: 5
Зарегистрирован: 22 авг 2011, 10:00
Версия LabVIEW: 10
Контактная информация:

Ошибка: pure virtual function called

Сообщение dudarev »

Приветствую!
Пытаюсь работать со связкой LabView 2011 + АЦП/ЦАП E-440. Хочется использовать одновременно и цап и ацп, т.е. хочу из окна лабвью генерировать сигнал определенной формы, и в этом же окне наблюдать сигнал пришедший из вне на осциллографе. Кнопка Run активна, а при её нажатии возникает ошибка из заголовка. Если есть желание посмотреть на саму прогу, приложу со всеми библиотеками.
Коллеги, с чем может быть связана данная ошибка? Как от неё избавиться?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5463
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Ошибка: pure virtual function called

Сообщение IvanLis »

Если бы Вы выложили скрин кода, указали место где возникает ошибка и что конкретно пишет, то бы ло бы на много проще :wink:
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Ошибка: pure virtual function called

Сообщение dadreamer »

Такая ошибка связана с какой-то из библиотек, написанных на C++, и возникает, когда программа пытается вызвать чисто виртуальную функцию абстрактного класса из конструктора/деструктора базового класса. Почитайте тут и тут, например. У меня такое бывало, когда одновременно производилась финализация всех структур (т.е., очистка объектов в оперативной памяти, закрытие устройств и т.п.) и какой-то вызов, как правило из той же библиотеки, откуда вызывался деструктор. Например, указатели уже обнулились и классы уничтожены, а программа пытается получить данные с какой-то железки (камера, плата, что угодно). Если это не ваша библиотека, то скорее всего косяк производителя. Ищите более свежую версию, где баги пофиксены. Или же у вас некорректно составлен код в :labview: , и в разных потоках одновременно вызываются функции, которые не нужно вызывать одновременно. Могу ещё посоветовать переустановить пакет Microsoft Visual C++ Redistributable Package, иногда помогает, судя по отзывам в сети.
dudarev
interested
interested
Сообщения: 5
Зарегистрирован: 22 авг 2011, 10:00
Версия LabVIEW: 10
Контактная информация:

Re: Ошибка: pure virtual function called

Сообщение dudarev »

Если это не ваша библиотека, то скорее всего косяк производителя. Ищите более свежую версию, где баги пофиксены. Или же у вас некорректно составлен код в , и в разных потоках одновременно вызываются функции, которые не нужно вызывать одновременно.
Библиотеки не мои. И вероятнее всего действительно вызываются одновременно 2 подпрограммы, которые не могут работать параллельно, поскольку я буквально "склеил" 2 программы в одну...
Спасибо за развернутый ответ, посмотрю, где может быть двойной вызов.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»