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!

25.06.2010, 11:34
Beitrag #11

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL
Schau dir mal diese Beispiele an.
C:ProgrammeNational InstrumentsLabVIEW x.xexamplesdlldata passing
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2010, 19:09
Beitrag #12

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL
Offtopic
CROSSPOST:
http://LabVIEWportal.eu/viewtopic.php?f=53&t=2273

LVF-Regeln lesen und beachten. Danke.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2010, 20:28
Beitrag #13

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:Und einen Muster DLL-Knoten hab ich auch gleich noch mit rein gemacht. Probiers mal so.

Und was auch noch offen ist: Muss der Speicherbereich, der ja per Pointer an die DLL übergeben wird, bestehen bleiben auch über die Laufzeit des Knotens hinaus?

Danke für den Muster DLL-Knoten ^_^.
Leider kann ich ihn erst am Montag ausprobieren.

Zitat:Und was auch noch offen ist: Muss der Speicherbereich, der ja per Pointe an die DLL übergeben wird, bestehen bleiben auch über die Laufzeit des Knotens hinaus?

Zum Glück kann den Speicherbereich nach dem Aufruf wieder überschrieben werden. Ich benötige nur die DatenBig Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2010, 20:30
Beitrag #14

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:CROSSPOST:
http://LabVIEWportal.eu/viewtopic.php?f=53&t=2273

LVF-Regeln lesen und beachten. Danke.

Gruß, Jens


Sorry, ich wusste nicht, dass es verboten ist.

Ich wollte nur schneller eine Lösung finden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2010, 20:40 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2010 20:46 von dimitri84.)
Beitrag #15

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL
Dann les' doch jetzt mal die Regeln Dimitri. Zwei Posts innerhalb von 2 Minuten sind auch v e r b o t e n!Wink

Und wegen dir musste ich ne 84 dranhängen Lol

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2010, 20:41
Beitrag #16

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
' schrieb:Und wegen dir musste ich ne 84 dranhängen Lol
Hi Dima, ich freue mich dich beim Forum begrüßen zu dürfen. ....Eu


Da du ein Experte bist Ph34r, kannst du züfällig etwas (bezuglich minener Frage) vorschlagen Wink2
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2010, 10:58
Beitrag #17

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
' schrieb:Und einen Muster DLL-Knoten hab ich auch gleich noch mit reingemacht. Probiers mal so.

Ich möchte mich noch mal bei IchSelbst bedankenLol.

Es bleiben bei mir trotzdem immer noch ein Paar offene Fragen.

Wenn ich die Definition der Funktion im "Knoten zum Aufruf externer Bibliotheken" betrachte, sieht die so aus:
uint32_t GetDynamicData(CStr DataSetPtr, CStr ServerAddress, uint32_t Serverport, uint32_t MaxTimeout); Huh

und die Funktion, die im Header definiert ist, sieht so aus:
uint32_t GetDynamicData(CStr *DataSetPtr, CStr *ServerAddress, uint32_t Serverport, uint32_t MaxTimeout);

Anders gesagt, es sollen nicht die Strukturen, sondern die Zeiger an die Strukturen an die Funktion übergeben werden!

Kann mir jamand erklären was soll ich in .vi verändern, damit die Definitionen der Funktionen im Header und im VI gleich sind?Denknach

Danke !


(siehe Anhang).


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2010, 11:36
Beitrag #18

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:Ich möchte mich noch mal bei IchSelbst bedankenLol.
Es bleiben bei mir trotzdem immer noch ein Paar offene Fragen.
Heißt das, dass es jetzt funktioniert?

Zitat:und die Funktion, die im Header definiert ist, sieht so aus:
uint32_t GetDynamicData(CStr *DataSetPtr, CStr *ServerAddress, uint32_t Serverport, uint32_t MaxTimeout);
Laut erstem Posting sieht der Header so aus:
Zitat:unsigned long GetDynamicData(ML5DataDynamic *DataSetPtr, char* ServerAddress, unsigned int ServerPort, unsigned int MaxTimeOut);
Also "ML5DataDynamic*" und nicht "CStr".

CStr ist also mit ML5DataDynamic* identisch.

Zitat:Kann mir jamand erklären was soll ich in .vi verändern, damit die Definitionen der Funktionen im Header und im VI gleich sind?Denknach
Eine wortidentische Gleichheit muss nicht bestehen - funktional muss es identisch sein.

"CStr* Data" wäre ein Pointer auf Pointer - das geht in LabVIEW nicht (so einfach).

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
28.06.2010, 12:19
Beitrag #19

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:Heißt das, dass es jetzt funktioniert?
Nein, es funktioniert noch nicht.
Ich bin gerade dabei die rückwärtige Umwandlung (vom String zu struct) zu erstellen, um an die Daten zu kommen.

Erster Posting ist korrekt
Zitat:unsigned long GetDynamicData(ML5DataDynamic *DataSetPtr, char* ServerAddress, unsigned int ServerPort, unsigned int MaxTimeOut);

So wie ich dich verstanden habe, ist CStr ein Zeiger auf die struct ML5DataDynamic.!? Dry
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2010, 12:32 (Dieser Beitrag wurde zuletzt bearbeitet: 07.07.2010 18:41 von jg.)
Beitrag #20

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
Irgentwie funktioniert es be mir nicht Unsure

Ich habe eine .dll erstellt um einige Funktionen zu siemulieren (siehe Anhang).

Hie ist der Quellcode.
///////////////////////////////////////////////////////////////////////////////
#include "ML5Data.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

ML5DataStatic *StaticData;
ML5DataDynamic *DynamicData;


unsigned long GetDynamicData(ML5DataDynamic *DataSetPtr, char* ServerAddress, unsigned int ServerPort, unsigned int MaxTimeOut)
{
return 0;
}


bool GetStaticData(char* Dir, char* Filter, char* Measurement, ML5DataStatic* DataSetPtr)
{
return 0;
}


void InitDynamicData(ML5DataDynamic* DynamicData)
{

DynamicData -> SpurVL = 1000,0;
DynamicData -> SpurVR = 2000,0;
DynamicData -> SpurHL = 3000,0;
DynamicData -> SpurHR = 4000,0;
DynamicData -> SpurVG = 5000,0;
DynamicData -> SpurHG = 6000,0;

DynamicData -> geoAchseH = 1000,0;

DynamicData -> SturzVL = 1000,0;
DynamicData -> SturzVR = 2000,0;
DynamicData -> SturzHL = 3000,0;
DynamicData -> SturzHR = 4000,0;

DynamicData -> RadversatzV = 1000,0;
DynamicData -> RadversatzH = 1000,0;

strcpy(DynamicData -> ErrorMessage, "Keine Fahler");

}


void InitStaticData (ML5DataStatic* StaticData)
{
StaticData -> SpurVL = 1000,0;
StaticData -> SpurVR = 2000,0;
StaticData -> SpurHL = 3000,0;
StaticData -> SpurHR = 4000,0;
StaticData -> SpurVG = 5000,0;
StaticData -> SpurHG = 6000,0;
StaticData -> SpurVMaxDiff = 7000,0;
StaticData -> SpurHMaxDiff = 8000,0;

StaticData -> SpurDiff20VL = 1000,0;
StaticData -> SpurDiff20VR = 2000,0;
StaticData -> SpurDiff10VL = 3000,0;
StaticData -> SpurDiff10VR = 4000,0;
StaticData -> SpurDiffMaxDiffV = 5000,0;

StaticData -> LenkWMaxLinksVL = 1000,0;
StaticData -> LenkWMaxLinksVR = 2000,0;
StaticData -> LenkWMaxRechtsVL = 3000,0;
StaticData -> LenkWMaxRechtsVR = 4000,0;

StaticData -> EingWinkel20VL = 1000,0;
StaticData -> EingWinkel20VR = 2000,0;
StaticData -> EingWinkel10VL = 3000,0;
StaticData -> EingWinkel10VR = 4000,0;

StaticData -> RadversatzV = 1000,0;
StaticData -> RadversatzH = 2000,0;

StaticData -> FahrachswinkelH = 1000,0;

StaticData -> LenkwinkelMaxVL = 1000,0;

StaticData -> LenkwinkelMaxVR = 1000,0;

StaticData -> Nachlauf20VL = 1000,0;
StaticData -> Nachlauf20VR = 2000,0;
StaticData -> Nachlauf10VL = 3000,0;
StaticData -> Nachlauf10VR = 4000,0;
StaticData -> NachlaufMaxDiff = 5000,0;

StaticData -> Spreizung20VL = 1000,0;
StaticData -> Spreizung20VR = 2000,0;
StaticData -> Spreizung10VL = 3000,0;
StaticData -> Spreizung10VR = 4000,0;
StaticData -> SpreizungMaxDiff = 5000,0;

StaticData -> Achsversatz = 1000,0;

StaticData -> SeitenversatzL = 1000,0;
StaticData -> SeitenversatzR = 2000,0;

StaticData -> Radstandsdiff = 1000,0;


strcpy(StaticData->ErrorMessage, "Keine Fahler");
strcpy(StaticData->ProtocolFiles, "AAAAAAAAAAAA.xml");


StaticData -> FileTime.tm_sec = 1000;
StaticData -> FileTime.tm_min = 1000;
StaticData -> FileTime.tm_hour = 1000;
StaticData -> FileTime.tm_mday = 1000;
StaticData -> FileTime.tm_mon = 1000;
StaticData -> FileTime.tm_year = 1000;
StaticData -> FileTime.tm_wday = 1000;
StaticData -> FileTime.tm_yday = 1000;
StaticData -> FileTime.tm_isdst = 1000;

}
/////////////////////////////////////////////////////////////////////////////////////////

Wenn ich die Simulations-DLL mit dem "Knoten zum Aufruf externer Bibliotheken" zusammen verwende (siehe Anhang), kommt nix vom Knoten ausSad

was mache ich falsh ??

Lv09_img2


Angehängte Datei(en)
Sonstige .dll  ML5DLL.dll (Größe: 236,08 KB / Downloads: 230)

Sonstige .vi  Muster_1.vi (Größe: 13,64 KB / Downloads: 224)
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.424 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.817 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: