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!

21.01.2008, 21:15 (Dieser Beitrag wurde zuletzt bearbeitet: 21.01.2008 22:07 von jg.)
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.698
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Problem beim Einbinden einer DLL
typedef enum {
LJIF_FLOATRESULT_VALID, // Valid data
LJIF_FLOATRESULT_RANGEOVER_P, // Overrange at the plus side
LJIF_FLOATRESULT_RANGEOVER_N, // Overrange at the minus side
LJIF_FLOATRESULT_WAITING, // Comparator standby
} LJIF_FLOATRESULT;

typedef struct {
LJIF_FLOATRESULT FloatResult; // Indicates whether data is valid
float fValue; // Measurement value when the value is "LJIF_FLOATRESULT_VALID". Indicates an invalid value in other situations.
} LJIF_MEASUREDATA;

EXP RC WINAPI LJIF_GetMeasureValue(OUT LJIF_MEASUREDATA* pData, IN int nCount);



Ich hab mal zusammengeschrieben, was notwendig ist. Schwierig, schwierig.

pData ist also ein Pointer auf eine Struktur! Ein einfaches Array of float geht hier also gar nicht. Jedes Arrayelement besteht auf einen Datum, das selbst aus zwei Daten besteht: einem Enumerator und einem Float. Leider weiß ich nicht, wie breit der Enzmerator ist. Kann sein ein Byte, zwei Byte oder auch vier Byte. Ein Array-Element kann also fünf Byte (das glaube ich aber nicht), sechs Byte (das halte ich für möglich) oder acht Byte haben (das wäre halt schön).

Du kannst mal folgendes probieren:

Mach einen Cluster aus "Result" und "Wert". Result definierst du als Byte (also I8) - oder Word (I16) oder Integer (I32). Wert als float. Den Cluster legt du in ein Array. Dieses Array gibst du auf den dll-Knoten. Den DLL-Knoten überlistest du wie folgt. Als Typ gibst du Array an, als Datentyp U8 (u - acht!), Dimensaion 1, Array-Format Array-Datenzeiger. Als Länge gibst du nichts an, sondern legst das Array wie oben an den DLL-Eingang. Und dann kuckst du was passiert.

Lv85_img


Angehängte Datei(en)
Sonstige .vi  Test.vi (Größe: 14,66 KB / Downloads: 335)

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


Nachrichten in diesem Thema
Problem beim Einbinden einer DLL - jg - 07.01.2008, 17:14
Problem beim Einbinden einer DLL - IchSelbst - 21.01.2008 21:15
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.361 08.09.2022 17:01
Letzter Beitrag: Martin.Henz
  Fehlercode 1097 beim Aufrufen einer C++ DLL Dr. Nuke 11 6.485 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: