Strona 1 z 1

Biblioteka .dll ; wskaźnik na funkcji

: 29 lip 2014 11:28
autor: turbolek
Chciałbym wywołać w LabVIEW funkcję zawartą w bibliotece .dll, która jako jeden z z argumentów przyjmuje wskaźnik na funkcję, jednak nie wiem jak to zrobić.

Próbowałem rozwiązać problem na podstawie tego artykułu: http://digital.ni.com/public.nsf/allkb/ ... 2E0006FE99
jednak nie wiele z niego rozumiem, jako że z User Events, wrapperami i w ogóle bibliotekami .dll mam właściwie zerowe doświadczenie.

Każda wskazówka będzie pomocna :]
Z góry dzięki za odpowiedzi.

EDYCJA:

chodzi dokładnie o coś takiego:

w bibliotece .dll znajduje się funkcja, którą chcę wywołać:

Kod: Zaznacz cały

v50_RTStart(LHandle,RecFunc,protocol);
gdzie nagłówek funkcji RecFunc ma wyglądać tak:

Kod: Zaznacz cały

void WINAPI RecFunc(V50HANDLE Handle,V50DATAINFO* pDataInfo,V50BUFFER* pBuffer)
(przykłady wzięte z działającej aplikacji napisanej w C++)

Problem tkwi w tym, że nie wiem jak w LabVIEW zaimplementować funkcję RecFunc i podać wskaźnik na nią jako argument funkcji v50_RTStart

Re: Biblioteka .dll ; wskaźnik na funkcji

: 31 lip 2014 12:23
autor: smiga

Re: Biblioteka .dll ; wskaźnik na funkcji

: 11 sie 2014 14:36
autor: turbolek
Ostatecznie rozwiązałem problem przerabiając funkcję w bibliotece tak, aby nie potrzebowała już wskaźnika na funkcję...

Gdyby jednak ktoś się zetknął z podobnym problemem, to udało mi się dotrzeć do takiej porady:
If the function expects a callback function as a parameter, complete the following steps to call the function from LabVIEW.
Write a wrapper library that defines at least two new functions:
A wrapper function that accepts from LabVIEW any data required by the original function. This wrapper function must call the original function, passing the data from LabVIEW as well as a callback function that you define in the same wrapper library.
The callback function that you want to pass to the original function.
Call the wrapper function with the Call Library Function Node.
Całość tutaj: http://zone.ni.com/reference/en-XX/help ... Data_Types