INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Labview Import / DLL debuggen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

26.10.2015, 08:13
Beitrag #31

galilio Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 175
Registriert seit: Mar 2014

2015
2013
EN


Schweiz
RE: Labview Import / DLL debuggen
Hallo,

es ist wie Rolf gesagt hat. Ich bin mit dem Wrapper falsch umgegangen.
Jetzt wollte ich meine wrapper wie hier in dieser Beispiel geschrieben "http://labviewwiki.org/DLL/shared_library" anpassen.
Ich habe dieses Beispiel wiederholt und hier ist das Ergebnis.

Ich verstehe nicht wie soll ich der Struct base initialisieren?

Ich bin so vorgegangen:

1) createbase Vi aufgerufen
2) set_x() VI werte von x_in setzen
3) get_x() VI aufrufen

Die Werte sind immer 0


Angehängte Datei(en)
14.0 .ctl  base.ctl (Größe: 4,56 KB / Downloads: 304)

14.0 .vi  create base.vi (Größe: 8,2 KB / Downloads: 304)

14.0 .vi  get x.vi (Größe: 8,97 KB / Downloads: 309)

14.0 .vi  set x.vi (Größe: 8,75 KB / Downloads: 251)

14.0 .vi  sqr x.vi (Größe: 8,39 KB / Downloads: 316)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.10.2015, 19:48
Beitrag #32

galilio Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 175
Registriert seit: Mar 2014

2015
2013
EN


Schweiz
RE: Labview Import / DLL debuggen

Akzeptierte Lösung

Ich muss eigentlich nur die Vi miteinander verbinden und die Einstellung der Library anpassen dann klappt alles wunderbar.


danke an alle.
So ist für mich das thema erledigt.
Es war eine schwere Geburt aber es klappt und bin am Ziel.
danke noch mal.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.10.2015, 19:08 (Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2015 19:08 von rolfk.)
Beitrag #33

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Labview Import / DLL debuggen
(28.10.2015 19:48 )galilio schrieb:  Ich muss eigentlich nur die Vi miteinander verbinden und die Einstellung der Library anpassen dann klappt alles wunderbar.


danke an alle.
So ist für mich das thema erledigt.
Es war eine schwere Geburt aber es klappt und bin am Ziel.
danke noch mal.

Ja aber mache doch den object pointer ein "Pointer Sized Integer" bitteschön. 32 Bit Integer funktioniert solange Du nur in LabVIEW 32 Bit arbeitest. Willst Du aber irgendwann mal nach 64 Bit gehen musst Du natürlich Deine DLL für 64 Bit compileren aber auch in allen Libraryknoten den Parameter anpassen. Und das entsprechende Kontrol auf dem Frontpanel sollte ein 64 Bit Integer sein.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2015, 20:13
Beitrag #34

galilio Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 175
Registriert seit: Mar 2014

2015
2013
EN


Schweiz
RE: Labview Import / DLL debuggen
Hallo Rolf,


ich habe einen kurzen Frage:
In der DLL Import habe ich eine Funktion geschrieben, die nicht anders macht als der gewrapperte Objekt zu löschen.
Code:
DLLIMPORT void destroy_base(base* LV_ref)
{
    delete LV_ref;
}

nun weiss es nicht genau wann soll ich dieses Funktion bzw. der erstellte destory_base() VI aufrufen.

Da es nähmlich, wenn ich letzte Vi schliesse stürtze das ganze Labview und das muss nicht sein.


Hast du vielleicht eine Idee woran es liegen kann?

Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2015, 21:49
Beitrag #35

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Labview Import / DLL debuggen
(06.11.2015 20:13 )galilio schrieb:  Hallo Rolf,


ich habe einen kurzen Frage:
In der DLL Import habe ich eine Funktion geschrieben, die nicht anders macht als der gewrapperte Objekt zu löschen.
Code:
DLLIMPORT void destroy_base(base* LV_ref)
{
    delete LV_ref;
}

nun weiss es nicht genau wann soll ich dieses Funktion bzw. der erstellte destory_base() VI aufrufen.

Da es nähmlich, wenn ich letzte Vi schliesse stürtze das ganze Labview und das muss nicht sein.


Hast du vielleicht eine Idee woran es liegen kann?

Danke

Sorry ich verstehe eigentlich nur BahnBahn

Grundsätzlich solltest Du destroy_base() dann aufrufen wenn Du nichts mehr mit dem base Objekt machen willst.
Aber dann muss der destructor Deines base Objekts auch keine illegalen Dinge machen.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2015, 19:16
Beitrag #36

galilio Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 175
Registriert seit: Mar 2014

2015
2013
EN


Schweiz
RE: Labview Import / DLL debuggen
Hallo Rolf,

ich habe einen Statemachine "event basiert" erstellt, wo ich jede State bearbeiten kann.
Für das destory_base habe ich extra einen state erstellt. Einzige Aufgabe was dieses State "destory_base" hat ist das Aufräumen. Also in dieses State wird dieses VI destory_base einfach aufgerufen.

Danach wird das VI mit der Statemachine auch beendet.
Problem ist: Labview stürz immer ab.
Seh bitte Anhang:


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.11.2015, 21:42 (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2015 21:44 von rolfk.)
Beitrag #37

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Labview Import / DLL debuggen
(09.11.2015 19:16 )galilio schrieb:  Hallo Rolf,

ich habe einen Statemachine "event basiert" erstellt, wo ich jede State bearbeiten kann.
Für das destory_base habe ich extra einen state erstellt. Einzige Aufgabe was dieses State "destory_base" hat ist das Aufräumen. Also in dieses State wird dieses VI destory_base einfach aufgerufen.

Danach wird das VI mit der Statemachine auch beendet.
Problem ist: Labview stürz immer ab.
Seh bitte Anhang:

Dein C Code beschreibt irgendwo Speicher den er nicht sollte. Das kann in der destroy_base() Funktion sein oder auch in einer anderen Funktion. Dir bleibt nichts anderes übrig als den C Code komplett zu reviewen und nochmals zu reviewen bis Du den Fehler findest. Du kannst versuchen den Debug Level in allen Call Library Nodes auf Maximum zu setzen. LabVIEW fängt dann alle möglichen Exceptions ab und legt um alle Parameter die an die DLL Funktion übergeben werden extra Speicher an der mit einem bestimmten Pattern gefüllt ist und checkt dann nach Rückkehr von der Funktion ob alles noch in Ordnung ist. Das kann helfen Buffer overruns in Deinem C Code zu fangen. Aber wenn Du in Deinem C Code irgendwo einen ungültigen Pointer verwendest dann kann LabVIEW das meist auch nicht detektieren und dann beginnt die freudige Arbeit des echten Programmierers: C Code debuggen!

Nun weisst Du auch wieder warum Du normal in LabVIEW programmierst und nicht in C!

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  USB Relay DLL import hansi9990 3 10.209 02.09.2019 09:15
Letzter Beitrag: hansi9990
  DLL Import externe Struktur in Header bekommen hansi9990 15 24.483 30.09.2016 17:20
Letzter Beitrag: hansi9990
  aus einem Library Import Installer machen galilio 5 13.052 04.04.2016 09:32
Letzter Beitrag: galilio
  DLL Import automatisieren CS 3 8.070 13.02.2015 10:53
Letzter Beitrag: CS
  Import Assistent findet Funktionen nicht TDO 1 5.636 11.12.2014 16:24
Letzter Beitrag: jg
  dll Import richtig verstanden? Gruenschnabel 6 8.324 19.09.2014 10:25
Letzter Beitrag: DATAAHEAD

Gehe zu: