Biblioteka .dll ; wskaźnik na funkcji

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
turbolek
Posty: 8
Rejestracja: 29 lip 2014 11:15
Wersja środowiska: LabVIEW 2010

Biblioteka .dll ; wskaźnik na funkcji

Post 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
Awatar użytkownika
smiga
Administrator
Posty: 824
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: Biblioteka .dll ; wskaźnik na funkcji

Post autor: smiga »

__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
turbolek
Posty: 8
Rejestracja: 29 lip 2014 11:15
Wersja środowiska: LabVIEW 2010

Re: Biblioteka .dll ; wskaźnik na funkcji

Post 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
ODPOWIEDZ