Есть dll библиотека с файлом заголовков которую успешно удалось рассовать по subVI-кам. В библиотеке имеется функция:
Входной параметр pBuffer, как я понимаю, представляет собой указатель на область памяти, для записи в нее считанную лазерную программу.int Laser_ReadLaserProgram (DWORD dwLaser, int iNumber, WORD * pBuffer, int iSize)
The function read the laser program from the laser and save it to the buffer. If the size of buffer is too small
for save of the program the function return the required size of the buffer.
Parameters:
DWORD dwLaser - [IN] The handle of laser object
int iNumber - [IN] Number of the laser program
WORD* pBuffer - [IN] The pointer to the buffer for save of the received laser program
int iSize - [IN] Size of the buffer (in words)
Returns:
>0 - the required size of the buffer or
HEE_FUNCTION_NO_ERROR - The command was processed by the laser
HEE_FUNCTION_ERROR - The command was not processed by the laser
HEE_INVALID_LASER_HANDLE - Invalid handle of laser object
Порывшись на форумах нашел вот такой вариант https://forums.ni.com/t5/LabVIEW/Pointe ... -p/1239772, однако, при попытки подсунуть dll-ке указатель на заранее инициализированный статический массив с элементами типа word (u16) labview крашится с ошибкой доступа к памяти, то бишь access violation.
Есть идеи как заставить dll и labview дружить?