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 

Struktur mit Zeiger auf weitere Struktur an DLL übergeben



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!

26.05.2015, 09:22
Beitrag #1

Wheeliemaster Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Mar 2008

2013 SP1f2
2007
kA

1277
Deutschland
Struktur mit Zeiger auf weitere Struktur an DLL übergeben
Hallo,

folgende Struktur vom Typ "MODULE_LIST" wird von der aufrufenden DLL erwartet:

typedef struct
{
UINT16 countModules; /**< Count of module names.*/
MODULE_NAME * names; /**< Array of module names. */
} MODULE_LIST;

Darin befindet sich ein Zeiger auf eine weitere Struktur "MODULE_NAME".

typedef struct
{
CHAR name[M_MODNAMELEN_A]; /**< Name of the module. */
} MODULE_NAME;

Ich habe das ganze schon als Cluster im Cluster angelegt. Des Weiteren habe ich Padding-Bytes eingefügt. Die Größe von "names" sowie die Anzahl der Array-Elemente ist bekannt. Das Cluster-Array names und das U8-Array "name" hatte ich vorher initialisiert. Nichts hat funktioniert. "Zeiger in Handles" oder "Handles durch Wert" machen keinen Unterschied.

Hat jemand von euch noch eine Idee?

Mfg

WM

LabVIEW 2013SP1f2 Full Development System (deutsch); WIN7Prof64
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.05.2015, 16:40
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Struktur mit Zeiger auf weitere Struktur an DLL übergeben
(26.05.2015 09:22 )Wheeliemaster schrieb:  Hallo,

folgende Struktur vom Typ "MODULE_LIST" wird von der aufrufenden DLL erwartet:

typedef struct
{
UINT16 countModules; /**< Count of module names.*/
MODULE_NAME * names; /**< Array of module names. */
} MODULE_LIST;

Darin befindet sich ein Zeiger auf eine weitere Struktur "MODULE_NAME".

typedef struct
{
CHAR name[M_MODNAMELEN_A]; /**< Name of the module. */
} MODULE_NAME;

Ich habe das ganze schon als Cluster im Cluster angelegt. Des Weiteren habe ich Padding-Bytes eingefügt. Die Größe von "names" sowie die Anzahl der Array-Elemente ist bekannt. Das Cluster-Array names und das U8-Array "name" hatte ich vorher initialisiert. Nichts hat funktioniert. "Zeiger in Handles" oder "Handles durch Wert" machen keinen Unterschied.

Hat jemand von euch noch eine Idee?

Mfg

WM

Du wirst nicht darumhin kommen um entweder einen DLL Wrapper in C zu schreiben der von LabVIEW freundlichen Datentypen zu C Datentypen und zurück übersetzt, oder aber Dir auf LabVIEW Diagram Niveau mit Pointern um die Ohren schlagen zu lassen. Cool

Für das erste es ein wenig C Kenntnis erforderlich und ein C Compiler, aber die gibts gegenwärtig überall gratis. Big Grin
Fürs zweite müsste man mal nach DSNewPtr(), DSDisposePtr() und MoveBlock() LabVEW manager functions suchen auf den einschlägigen LabVIEW Forums, unter anderem hier, bei NI und auch bei LAVAG.

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
27.05.2015, 08:40
Beitrag #3

Wheeliemaster Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Mar 2008

2013 SP1f2
2007
kA

1277
Deutschland
RE: Struktur mit Zeiger auf weitere Struktur an DLL übergeben
Danke Rolf,

ich habe es bereits vermutet. Dann werde ich mich mal der DLL-Welt widmen.Ansage

LabVIEW 2013SP1f2 Full Development System (deutsch); WIN7Prof64
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
  C-String-Zeiger Format hansi9990 19 9.473 25.08.2023 12:16
Letzter Beitrag: rolfk
  DLL Import externe Struktur in Header bekommen hansi9990 15 20.692 30.09.2016 17:20
Letzter Beitrag: hansi9990
  dll mit Pointer auf komplexe Struktur einbinden Wedgewood 11 14.572 27.04.2014 23:44
Letzter Beitrag: Wedgewood
  DLL - Zeiger auf TParameter Struktur F-Trooper 1 4.224 03.03.2012 22:10
Letzter Beitrag: rolfk
  .VI Datei Struktur? MarkusLabVIEW 3 7.845 12.03.2011 17:56
Letzter Beitrag: IchSelbst
  Rückgabewert aus DLL-Methode mit C#-Struktur jakob.brunner 5 7.687 04.12.2009 22:34
Letzter Beitrag: jakob.brunner

Gehe zu: