Also,
in dem VI getbase hast du einen U32 als Wert der aus der Wrapper DLL
geliefert wird. Das ist ein Zeiger, den generierst du ja in der DLL in
dem du die Funktion "createbase aufrufst.
--> DLLIMPORT base* create_base(double x_in) in deinem VI heist das Ding
ja "function return"
Das kann man so machen.
Das VI set_x benötigt nun genau diesen Wert. Du hast in dem VI einen
Cluster als Übergabeparameter angegeben "LV_ref". Diesen Cluster musst
du nun durch einen U32 ersetzen. Das musst du in dem Konfiguration voin
dem DLL aufruf machen.
Dann wird die "function return" mit dem neuen U32 Datentypen im
create_x.. verbunden. Damit hat nun die Funktion in der Wrapper DLL
einen gültigen Zeiger auf die abgeleitete Klasse und kann auf die
Elemente der KLasse zugreifen. Nun sollte keine NULL mehr zurück kommen.
Der ganze Code in der Wrapper ist eh kritisch, da nicht auf gültige
Zeiger kontrolliert wird.
Du kannst froh sein wenn dir dein System nicht komplett abstürzt und du
nur eine Schutzverletzung gemeldet bekommst.
Wenn du die Änderungen gemacht hast, zeig doch bitte mal das
Blockdiagramm mit Sequenz create_base - get_x - destroy_base
Btw: soclhe Stielblüten machen das lesen von Sourcecode nicht einfacher
;-)
Rein oder raus, aber nicht reinraus
#define DLLIMPORT __declspec (dllexport)
Gruß Dietmar