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 

struct mit char **Parameter in 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!

13.08.2007, 08:48 (Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2007 08:53 von t4b-1re-2.)
Beitrag #1

t4b-1re-2 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 155
Registriert seit: May 2007

8.5
2007
de

99*
Deutschland
struct mit char **Parameter in DLL
Hallo,

ich komm nich weiter Wall
Ich habe innerhalb einer API eine structdefinition, und eine Funktion die dieses struct übergeben bekommt:
[code]typedef struct {
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.08.2007, 09:42
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
struct mit char **Parameter in DLL
Da sehe ich große Probleme auf dich zu kommen.

Ich sag gleich mal die eine Lösung: Wrapper-DLL.

Die anderen wären: Suchen auf NI.COM. Warten, bis sich hier einer meldet, der was genaueres weiß als ich. etc.


Zu den Problemen.

[quote='']Ich habe innerhalb einer API eine structdefinition, und eine Funktion die dieses struct übergeben bekommt:
[code]typedef struct {

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
24.08.2007, 10:44 (Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2007 10:45 von rolfk.)
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
struct mit char **Parameter in DLL
' schrieb:Da sehe ich große Probleme auf dich zu kommen.

Ich sag gleich mal die eine Lösung: Wrapper-DLL.

Die anderen wären: Suchen auf NI.COM. Warten, bis sich hier einer meldet, der was genaueres weiß als ich. etc.
Zu den Problemen.

Problem: Ein (Doppel)Pointer in einer Struktur, die selbst als Pointer übergeben wird.
Das ist praktisch in LV nicht möglich. Dasfür ist LV nicht ausgelegt. Hierzu wäre ein Pointer in einem Cluster notwendig. Es gibt in LV aber keine expliziten, also für den Anwender manupulierbare Pointer. Demzufolge kann dieser Datentyp auch nicht als Variable gespeichert werden. (Nichtsdestoweniger kann natürlich einer mal ein VI geschrieben haben, das diese Funktionalität hat).

Problem: FILE
FILE ist ein bestimmter Datentyp, hinter dem (glaub ich zumindest, so tief geh' ich da nicht mehr rein) auch eine Struktur steht. Ob man hier so ganz ordinär eine "FILE"-Referenz aus LV anschleißen kann, wäre einen Versuch Wert. (FILE kann eine Datei, Drucker, IODevice etc. sein.) Ich bin da aber eher skeptisch.

Ohne Pointer auf die Struktur, in der sich dieser Pointer befindet, geht aber sowieso nix.

Genau! ->>> Wrapper DLL ist hier so ziemlich die einzige Lösung. Eine andere Möglichkeit herauszusuchen, auch wenn es ganz, ganz vielleicht ginge benötigt zigmal mehr Zeit.

Zum Datatype FILE. Das ist zwar C runtime intern tatsächlich manchmal eine Struktur aber das Layout davon ist privat für die C runtime Library und ein Anrufer muss einfach mal davon ausgehen dass es ein void * ist. In LabVIEW heisst das, dass man dafür einen uInt32 nimmt.

Die Verwendung von stdout in diesem Zusammenhang wird aber erst einmal nicht so gehen. LabVIEW und LabVIEW Applikationen sind GUI Applikationen und haben deshalb kein StandardIO. Es gibt zwar die Möglichkeit um mit einem Microsoft Tool die Flags eines GUI Executables zu modifizieren so dass Windows beim Starten auch eine Standard Console für diese Program anlegt. Aber normal ist das sicher nicht und im Fall von LabVIEW wohl normalerweise auch sicher nicht gewünscht.

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
03.09.2007, 12:35
Beitrag #4

t4b-1re-2 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 155
Registriert seit: May 2007

8.5
2007
de

99*
Deutschland
struct mit char **Parameter in DLL
Danke euch beiden. Ich hatte schon befürchtet, dass es lediglich über ne WrapperDLL gehen würde. Klingt aber für mich irgendwie schwer nach "Wunschliste".

Viele Grüße
t4b-1re-2
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
  DLL einbinden, Parameter hinzufügen meb2323 3 7.066 07.03.2020 16:51
Letzter Beitrag: meb2323
  VC++ 6.0 DLL ins Labview--Ist es möglich output type as char*? Danyang 1 5.007 11.06.2013 10:44
Letzter Beitrag: rolfk
  C-Funktion benötigt Struct Forest 3 6.911 04.05.2013 23:38
Letzter Beitrag: rolfk
  Problem bei Struct Einbindung wie in C/C++ raverel 5 8.776 24.04.2013 14:22
Letzter Beitrag: raverel
  Cluster der Array enthält als Ausgabe-Parameter einer dll SchwindelInside 4 7.118 07.12.2012 12:51
Letzter Beitrag: SchwindelInside
  Probleme mit Handler und Struct ElBartscho 3 5.346 16.11.2012 19:35
Letzter Beitrag: rolfk

Gehe zu: