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 

Problem beim Einbinden einer DLL



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!

09.01.2008, 10:46
Beitrag #6

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Problem beim Einbinden einer DLL
' schrieb:Danke Rolf,

das hat wirklich geklappt, ich konnte die DLL mit dem Assistenten jetzt mit allen Funktionen importieren.
Leider hänge ich jetzt schon wieder.
Er hat jetzt für alle Funktionen ein vi erstellt. Soweit so gut.
Die erste Funktion die ich brauche ist "OpenDeviceEther" der ich als Parameter eine Struktur vom Typ "LJIF_OpenParam_Ethernet" mitgeben muss. Diese Struktur enthält jetzt die vier Teile einer IP-Adresse (über die sich die Kamera ensprechen lässt) als CInt.
Das ganze leitet sich wohl von der Microsoft-standard-struktur "IN_ADDR" ab, die auch in der Winsock.h definiert ist.

Aber wie erstelle ich in LabVIEW jetzt eine solche Struktur um sie der Funktion zu übergeben?

Leider habe ich nach dem Importieren eben auch einen Fehlerreport erhalten der genau von dieser Funktion spricht.
Ich hänge ihn mal an.

Edit:
Also ich habe jetzt mal ein wenig "rumprobiert" ^^
Laut einem Tutorial zum einbinden von DLL´s (habe ich hier im Forum irgendwo gefunden) kann man für Strukturen bzw Cluster einfach Arrays verwenden. Nach dem importieren der DLL erstellt er ja für den Parameter "openParam" einen leeren cluster. Den habe ich einfach mal gelöscht und übergebe für openparam jetzt ein umgewandeltes Array.
Er bringt dabei auch keine Fehlermeldung. Aber wenn ich jetzt auf Ausführen klicke gibt die Funktion mir als Hexadezimalzahl 2000 zurück. Was laut Helpfile heisst "Failed to open device".
Irgendwie bin ich auf dem Holzweg, oder?

Array = Cluster ist meistens nicht korrekt. Jedenfalls nicht ohne sehr viel Kenntnis darüber wie die beiden Dinge durch einen C Compiler im Speicher angeordnet werden.

Also die von Dir angesprochene Funktion möchte gerne einen Pointer auf LJIF_OPENPARAM_ETHERNET. Das wiederum ist eine Struktur die die IN_ADDR Struktur enthält. Und IN_ADDR ist eine Union die entweder einen uInt32, zwei uInt16 oder vier uInt8 enthält. Für unsere Zwecke ist die uInt32 Variante am interessantesten. Eigentlich musst Du diesen Parameter nur als usigned 32-bit Integer konfigurieren der als Pointer to Value übergeben wird.

Dann kannst Du direkt den uInt32 den Du von der String to IP Funktion von der TCP Palette bekommst hiermit verbinden. Sollte so direkt gehen. Wenn nicht könnte die Byteorder verkehrt sein und dann müsstest Du noch eine Swap Bytes und Swap Words Funktion zwischen String To IP und diesem Eingang einfügen.

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
30
Antwort schreiben 


Nachrichten in diesem Thema
Problem beim Einbinden einer DLL - jg - 07.01.2008, 17:14
Problem beim Einbinden einer DLL - rolfk - 09.01.2008 10:46
Problem beim Einbinden einer DLL - jg - 24.09.2008, 19:10

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Problem bei Aufruf einer dll swoc 5 3.360 08.09.2022 17:01
Letzter Beitrag: Martin.Henz
  Fehlercode 1097 beim Aufrufen einer C++ DLL Dr. Nuke 11 6.484 22.07.2022 22:39
Letzter Beitrag: Martin.Henz
  Einbinden einer DLL mit mehr Output-Parametern, als Input-Parametern Herm 3 6.302 14.06.2011 11:12
Letzter Beitrag: rolfk
  DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL Dimitri 24 27.386 02.07.2010 15:16
Letzter Beitrag: Dimitri
  Einbinden einer dll (*.so) Apu 3 6.386 08.03.2010 19:51
Letzter Beitrag: rolfk
  Einbinden einer DLL, Speichermanagement Mictlantecutli 3 7.987 14.10.2009 08:33
Letzter Beitrag: Mictlantecutli

Gehe zu: