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 

DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-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!

28.06.2010, 17:40 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2010 17:41 von IchSelbst.)
Beitrag #21

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL
Ein String, besonders PChar, hat gegenüber einem statischen (fixedsized) ArrayOfChar den gravierenden Nachteil, dass der String endet, wenn eine binäre Null erkannt wird. Fängt also der rückgelieferte Datenstream mit einer binären Null an, bedeutet das, dass keine Daten vorhanden sind. Strings, jetzt ANSI-Strings etc, kennen eine Länge, sodass solche Strings auch binäre Nullen übertragen können.

Die Übergabe als PChar ist also nur für Input-Daten sinnvoll. Die Funktion in der DLL interpretiert den PChar ja als Struct.

Für das Zurückgeben von Daten muss mal also ArrOfU8 mit definierter Länge (= Länge des Structs) angeben. In LabVIEW kann man dann aus dem U8-Array einen String machen, mit dem man dann per Deserialisieren an die Daten herankommt.

LV90


Angehängte Datei(en)
Sonstige .vi  Muster_1.vi (Größe: 15,88 KB / Downloads: 234)

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
Anzeige
02.07.2010, 14:46
Beitrag #22

Dimitri Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jun 2009

2009
2009
de

30171
Deutschland
DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL
Hallo Leute,

es klappt bei mir immer noch nicht. Wacko

Nun versuche ich eine Wrapper-DLL zu erstellen. Die DLL soll die scruct aus der erten DLL auslesen, dann die Daten aus stuct in einzelne Array's, je nach dem Datentyp, reinschreiben. Danach sollte, laut meiner Theorie, LabVIEW duech "Knoten zum Aufruf externer Bibliotheken " die einzelne Arrays auslesen können.

In Visual C++ funktioniert mein Konstrukt.
Aber sobald ich versuche meine Wrapper DLL an "Knoten zum Aufruf externer Bibliotheken " erhalte ich eine Fehlermeldung, dass die original DLL nicht gefunden werden kann (siehe Bild).

Hier ist Quellcode:

ML5DLL.dll ist meine Original DLL, die ich an LabVIEW anbinden soll
ML5Data.h ist die Headerdatei dazu

DLLAdapterNeu.dll ist meine Wrapper DLL
DLLAdapterNeu.h ist Header dazu
DLLAdapterNeu.c Quellcode


ML5Data.h
[code]#include <time.h>
#define NAN 9.9E34

typedef struct
{
double SpurVL, SpurVR, SpurHL, SpurHR, SpurVG, SpurHG;
double geoAchseH;
double


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2010, 15:06
Beitrag #23

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL
' schrieb:Aber sobald ich versuche meine Wrapper DLL an "Knoten zum Aufruf externer Bibliotheken " erhalte ich eine Fehlermeldung, dass die original DLL nicht gefunden werden kann (siehe Bild).
Ist kein expliziter Pfad beim Laden der DLL angegeben, so kann die DLL entweder im Windows-Systemverzeichnis liegen oder in dem Verzeichnis, von dem aus der die DLL aufrufende Prozess gestartet wird. Das ist bei EXE das Verzeichnis, in der sich die EXE liegt, und bei VIs (also in der IDE) das Verzeichnis, in dem das VI liegt.

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
02.07.2010, 15:12
Beitrag #24

Dimitri Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jun 2009

2009
2009
de

30171
Deutschland
DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL
Zitat:Das ist bei EXE das Verzeichnis, in der sich die EXE liegt, und bei VIs (also in der IDE) das Verzeichnis, in dem das VI liegt.

Alle DLL und VI Liegen bei mir ineinem Verzeichnis (s. Bild)


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2010, 15:16
Beitrag #25

Dimitri Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jun 2009

2009
2009
de

30171
Deutschland
DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL
AAAAAAAA......... ich hab verstanden...

Danke, Danke

Es Funktioniert !!!!!!!LolLolLol

Die beide DLL's sollen in einem Verzeichnis sein !!!!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  LabView Wrapper - PostUserEvent aus externer DLL Stephan235 3 10.423 22.07.2015 13:28
Letzter Beitrag: rolfk
  DLL einbinden mittels Wrapper OXO 11 14.321 08.05.2013 10:27
Letzter Beitrag: OXO
  Wrapper DLL zum dynamischen Laden b.p 3 6.677 17.04.2012 13:18
Letzter Beitrag: rolfk
  C# MAPI .NET WRAPPER DLL und Lotus Notes Totte 3 7.816 16.12.2011 09:15
Letzter Beitrag: Totte
  Einbinden einer DLL mit mehr Output-Parametern, als Input-Parametern Herm 3 6.274 14.06.2011 11:12
Letzter Beitrag: rolfk
  Trinamic TMCM 610 über Wrapper.dll passimatze 2 5.641 17.06.2010 06:23
Letzter Beitrag: passimatze

Gehe zu: