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 

Rückgabezeiger bei DLL-Funktionen



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!

21.12.2011, 14:26
Beitrag #1

TR6 Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Dec 2011

2011
2011
DE

66287
Deutschland
Rückgabezeiger bei DLL-Funktionen
Hallo Forum-Gemeinde,

ich bin nicht nur neu im Forum, sondern auch neu was Labview betrifft.
Ich komme aus der "klassischen Programmierung" C++, ...

Ein versierter Kollege und ich haben einen Zwispalt bezüglich Zeiger und DLL:

Eine DLL-Funktion benötigt einen Zeiger auf einen Integer und liefert, auch über diesen Parameter in der Funktion, den zweiten Rückgabewert.
Im DLL-Funktionsobjekt steht in der Konfiguration des Parameters der Wert auf Zeiger.
Meine Auffassung ist es nun, dass eine Variable dem Parameter der Funktion zugewiesen werden muss (rechte Seite Objekt), da die DLL-Funktion diesen Wert als Adresse nutzt und den rückzuliefernden Wert dorthin schreibt. Den Wert kann ich nach Funktionsablauf dann auf der rechten Seite des DLL-Funktions-Objektes in Labview abgreifen.
Kurz: ich muss dem DLL-Funk.-Objekt auch eine Variable links zuweisen, damit Speicher für die DLL bereit gestellt wird.

Mein Kollege meint, es sei nicht nötig. Es reicht, wenn nur von der rechten Seite der Parameter abgefragt wird. Das "Vornedran" erledigt LV selbst.

Wer hat recht?

Schöne Grüße,

Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2011, 15:19 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2011 15:20 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Rückgabezeiger bei DLL-Funktionen
(21.12.2011 14:26 )TR6 schrieb:  Hallo Forum-Gemeinde,

ich bin nicht nur neu im Forum, sondern auch neu was Labview betrifft.
Ich komme aus der "klassischen Programmierung" C++, ...

Ein versierter Kollege und ich haben einen Zwispalt bezüglich Zeiger und DLL:

Eine DLL-Funktion benötigt einen Zeiger auf einen Integer und liefert, auch über diesen Parameter in der Funktion, den zweiten Rückgabewert.
Im DLL-Funktionsobjekt steht in der Konfiguration des Parameters der Wert auf Zeiger.
Meine Auffassung ist es nun, dass eine Variable dem Parameter der Funktion zugewiesen werden muss (rechte Seite Objekt), da die DLL-Funktion diesen Wert als Adresse nutzt und den rückzuliefernden Wert dorthin schreibt. Den Wert kann ich nach Funktionsablauf dann auf der rechten Seite des DLL-Funktions-Objektes in Labview abgreifen.
Kurz: ich muss dem DLL-Funk.-Objekt auch eine Variable links zuweisen, damit Speicher für die DLL bereit gestellt wird.

Mein Kollege meint, es sei nicht nötig. Es reicht, wenn nur von der rechten Seite der Parameter abgefragt wird. Das "Vornedran" erledigt LV selbst.

Wer hat recht?

Schöne Grüße,

Stefan

Das ist versionsabhängig! Für Skalars (und nur für Skalars) macht LabVIEW das in aktuellen Versionen tatsächlich. In älteren Versionen hättest Du damit aber Pech. Für Arrays und Strings macht LabVIEW das aber nur wenn es auch entsprechend in der Konfiguration festgelegt wurde. Auch hier bestand diese Möglichkeit in älteren Versionen überhaupt nicht und musste man es explizit machen. Ich bin ein Befürworter von expliziter Programmierung solcher Dinge. Dann hast Du eine Möglichkeit weniger warum es krachen könnte wenn man zwischen LabVIEW Versionen hin und her geht.

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
21.12.2011, 16:05
Beitrag #3

TR6 Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Dec 2011

2011
2011
DE

66287
Deutschland
RE: Rückgabezeiger bei DLL-Funktionen
Hallo Rolf,

Danke für Deine Antwort.

Das scheint dann auch unser Problem zu bestätigen.

Das momentane LV-Programm ist in LV 8.5 geschrieben und der DLL-Funktion wird KEINE Variable mitgegeben an der Stelle (linke Seite kein Eingabefeld an den Objekteingang angeschlossen). Es gibt Probleme bezüglich dieser DLL-Funktion. Das Programm läuft, steigt aber nach einiger Zeit aus an der Stelle aus.

Schöne Grüße,

Stefan
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
  CallBack Funktionen in C für LV spamer84 3 7.469 07.05.2008 19:56
Letzter Beitrag: rolfk

Gehe zu: