Я знаком с написанием DLL, которые можно вызывать из LabVIEW, но мне любопытно, каким может быть правильный способ передачи изображений IMAQ в DLL. Вот один из способов, который я нашел для этого — я также использую аналогичный механизм для отправки экземпляров изображения IMAQ из моей DLL в структуру событий.
Обратите внимание, что узлы, которые преобразуют экземпляры образа в/из кластеров, расположены в ${LABVIEW_INSTALL_DIR}/vi.lib/vision/DatatypeConversion.llb
и называются IMAQ Image Datatype to Image Cluster.vi
и IMAQ Image Cluster to Image Datatype.vi
соответственно. Создаваемый кластер состоит из имени образа и целочисленного значения, представляющего адрес указателя на тип Image*
в C/C++.
Это лучший способ сделать это, или есть лучший способ?
imageInfo
, которая возвращается по ссылке при вызовеimaqGetImageInfo(_pImage, &imageInfo)
, где адрес, хранящийся в_pImage
, эквивалентен целому числу, переданному в примере в вопрос выше. 16.02.2012${LABVIEW_INSTALL_DIR}/vi.lib/vision/DatatypeConversion.llb
. Жаль, что они не включены в палитру IMAQ по умолчанию, если честно... 16.02.2012