1. masz jeden dll, w którym masz różne funkcje.
2. w przypadku wywołania funkcji, w której parametr jest stringiem, czyli w Twoim przypadku jak dll node jest poza strukturą case to jest okej.
3. w przypadku wywołania funkcji, w której parametrem jest tablica, czyli wewnątrz struktury case to wywala błąd:
LabVIEW: An exception occurred within the external code called by a Call Library Function Node. The exception might have corrupted the LabVIEW memory. Save any work to a new location and restart LabVIEW.
Wywołujesz tam jedną i tą samą funkcję dla każdej z tablic? I dla każdej masz błąd? Czy wywołujesz jakieś jeszcze inne i dla nich jest okej?
Z tego błędu co jest zgłaszany to wydaje mi się, że masz coś złego w kodzie c++. Tak jakbyś chciał, albo wpisywał do nieodpowiednich komórek pamięci.
Ciężko mi coś na podstawie kodu powiedzieć, bo musiałbym mieć cały i wiedzieć co chcesz uzyskać itd.
Na pierwszy rzut oka to popatrz sobie na te auto_ptr.
Tak na szybko z wikipedii:
orazWzorzec klasy auto_ptr opisuje obiekt przechowujący wskaźnik do zaalokowanego obiektu typu Typ*, dbając o to żeby obiekt na który ten wskaźnik wskazuje został automatycznie zniszczony wraz ze zniszczeniem wskaźnika − czyli zazwyczaj po opuszczeniu zasięgu.
Może coś kasują jak są wywoływane lokalnie w funkcji i usuwają np dostęp do urządzenia późniejszy w dalszych dll.Klasa auto_ptr ma semantykę ścisłej własności co oznacza że instancja auto_ptr jest jedynym właścicielem obiektu na który ona wskazuje. Przy kopiowaniu auto_ptr, źródłowa instancja ustawia się na wartość null
Albo np. zamiast tego:
Kod: Zaznacz cały
case DLL_PROCESS_DETACH:
{
delete device1;
delete device2;
delete cdev;
device1 = NULL;
device2 = NULL;
cdev = NULL;
}
break;
Ja zrobiłem sobie podobny kod do Twojego tylko, że na tablicach i zadziałał mi. Z tym, że pamiętaj, że jak na początku tworzysz dynamicznie obiekty to ten dll, w którym to robisz musi się wywołać jako pierwszy. Hierarchie możesz zachować np poprzez łączenie drutem błędu jak w załączniku.
Przydałby się ktoś, co lepiej c++ ogarnia i sprawę dllków:P