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 

Tutorial: Einbindung von DLLs



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!

12.06.2007, 14:47 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2007 15:06 von rolfk.)
Beitrag #1

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Tutorial: Einbindung von DLLs
IchSelbst, Du schreibst in 2.1.4 Fliesskommazahlen:

Der Typ Extended ist 80 Bit, also 10 Byte breit. Dieser Typ wird von LV nicht unterstützt.

Das ist nicht korrekt. LabVIEW unterstüzt den Extended Datentyp. Nur ist er nicht platformunabhängig. Aber die Implementation in Windows is entsprechend dem Fliesskommaformat des Coprozessors und es würde mich verwundern wenn Delphi da etwas anderes verwenden würde.

Es ist aber so das C selber dafür keinen direkten Datentyp kennt. Das deshalb da er ja sehr hardwareabhängig ist.

Und die Erklärung warum LabVIEW und Datenpointer nicht gut zusammengehen klingt ein wenig gekünstelt. Ist vielleicht sinnvoll für einen unbedarften Programmierer der kein C oder was auch immer begreift und es auch nicht lernen will, aber dann ist schon mal die Frage ob er sich mit dem DLL Aufrufknoten überhaupt abgeben sollte.

Der LabVIEW Kern ist komplet in C(++) progrmiert und arbeitet daher intern fast ausschliesslich mit Pointern ;-) Der Grund warum Pointer in LabVIEW auf der Diagramebene nicht vorkommen ist viel mehr das LabVIEW eine umfassende Kontrolle des Speichers für den Benützer übernimmt. Das ist ja auch das Schöne an LabVIEW. Man braucht sich nie um die korrekte Allozierung und Deallozierung von Speicher zu kümmern, sondern kann direkt mit dem Programmieren der eigentlichen Funktion und dem Testen davon beginnnen.

Und Pointer können so ziemlich alles beherbergen. Das heisst dass LabVIEW entweder in der DLL Aufrufknotenkonfiguration eine wesentliche Einschränkung machen muss welche Konvertierungen es unterstützen will, oder aber diese Konfiguration wird so unübersichtlich, dass sie ein Manual benötigt das dicker ist als alle anderen LabVIEW-Manuals zusammen und auch dann noch nur für den absoluten C Crack zu begreifen ist.

Rolf Kalbermatter

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
12.06.2007, 17:08
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Tutorial: Einbindung von DLLs
' schrieb:Das ist nicht korrekt. LabVIEW unterstüzt den Extended Datentyp.
Letzteres schon. Nur kannst du ihn nicht per DLL-Knoten an eine DLL übergeben. Es fehlt die Vorwahl beim Konfigurieren des Knotens hierfür.

Zitat:Und die Erklärung warum LabVIEW und Datenpointer nicht gut zusammengehen klingt ein wenig gekünstelt. Ist vielleicht sinnvoll für einen unbedarften Programmierer der kein C oder was auch immer begreift und es auch nicht lernen will
Im Prinzip triffst du meine Intension. Wink

Zitat:aber dann ist schon mal die Frage ob er sich mit dem DLL Aufrufknoten überhaupt abgeben sollte
So wie ich das sehe, gilt oft nicht sollte, sondern müssen. Leider ist es oft so, dass die einzig brauchbare Software nur über DLL ansprechbar ist - in Ermangelung eines "anständigen" LV-Treibers etc.

Zitat:Der Grund warum Pointer in LabVIEW auf der Diagramebene nicht vorkommen ist viel mehr das LabVIEW eine umfassende Kontrolle des Speichers für den Benützer übernimmt.
Man kann das auch anders herum ausdrücken: Ich wenn LV wäre, würde es nur sehr ungern sehen, wenn ein Anwendungsprogrammierer mit Pointern in meinen Daten herumpfuscht.

Zitat:Das ist ja auch das Schöne an LabVIEW. Man braucht sich nie um die korrekte Allozierung und Deallozierung von Speicher zu kümmern, sondern kann direkt mit dem Programmieren der eigentlichen Funktion und dem Testen davon beginnnen.
Das ist bei Delphi nicht anders. Oder sollte ich lieber sagen: Man kommt auch in Delphi ohne aus. Ich hab da noch nie Speicher explizit alloziert.

Zitat:Das heisst dass LabVIEW entweder in der DLL Aufrufknotenkonfiguration eine wesentliche Einschränkung machen muss welche Konvertierungen es unterstützen will, oder aber diese Konfiguration wird so unübersichtlich, dass sie ein Manual benötigt das dicker ist als alle anderen LabVIEW-Manuals zusammen und auch dann noch nur für den absoluten C Crack zu begreifen ist.
Im Prinzip hast du wohl Recht. Auch in LV sieht mal wohl den DLL-Knoten eher als notwendiges Übel. In Ermangelung entsprechender VIs.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.06.2007, 22:32
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Tutorial: Einbindung von DLLs
' schrieb:Letzteres schon. Nur kannst du ihn nicht per DLL-Knoten an eine DLL übergeben. Es fehlt die Vorwahl beim Konfigurieren des Knotens hierfür.

Das stimmt aber das ist kein böser Wille von NI. Extended format is nicht wirklich unterstützt durch MS und daher ist auch kein fixer Standard wie das als Parameter an eine Funktion übergeben werden soll. ANSI C unterstützt es nicht mal da es nicht Hardwareunabhängig ist. Und damit gibt es eigentlich auch keine DLLs die das bräuchten.

Rolf Kalbermatter

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
  Thema für neues Tutorial vorschlagen... Dennis.Moser 17 23.061 18.06.2012 12:25
Letzter Beitrag: Christoffer
  LVF-Tutorial suchen und schreiben... Dennis.Moser 0 4.057 10.02.2012 12:48
Letzter Beitrag: Dennis.Moser
  "Tutorial" Bin, Hex, ASCII ... IchSelbst 0 8.335 16.04.2007 10:29
Letzter Beitrag: IchSelbst

Gehe zu: