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!

22.01.2008, 13:41 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2008 13:42 von rolfk.)
Beitrag #12

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Problem beim Einbinden einer DLL
' schrieb:Hey vielen Dank für die Mühe.
So bekomme ich allerdings ganz komische Werte raus.
Wenn ich einfach ein Array mit 4-Byte-Single Werten nehme stimmen die Ergebnisse eigentlich.
Ist also schon ok so.

Jetzt habe ich aber noch ein anderes Problem.
Wenn ich mein Programm ausgeführt habe, wieder stoppe und danach die Eigenschaften
von irgendwelchen Objekten aufrufen will stürzt mir das komplette LabVIEW ab, mit
irgendwelchen Read oder Write fehlern.
Das passiert aber nicht immer, nur ab und zu.
Wird da irgendwie der Speicher nicht freigegeben?
Muss ich das manuel machen?

Also wenn Du sagst, dass es mit einem Float-Array ausser dem Interleaving funktioniert, verwendet die DLL als enum scheinbar ein uInt32. Nun wahrscheinlich eigentlich nicht da ein C Compiler normalerwiese den kleinsten unsigned int benützt, der nötig ist um den höchsten positiven Wert des enums zu representieren.

Da Dein enum ja nur vier Werte enhält, also 0, 1, 2, und 3 wäre das halt ein uInt8. Aber die meisten unter Windows erstellten Applikationen und DLLs verwenden ein default alignment, was heisst dass ein Element in einem Cluster immer auf einem ganzzahligen Vielfachen des kleineren der beiden folgenden Werte beginnt:

1) Der Objektsize des Elementes (hier 4 bytes für Single float)
2) Dem Default alignment, normalerweise 8 unter 32 bit Windows

Dein Array sieht im Speicher also so aus:

[code]Adresse

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


Nachrichten in diesem Thema
Problem beim Einbinden einer DLL - jg - 07.01.2008, 17:14
Problem beim Einbinden einer DLL - rolfk - 22.01.2008 13:41
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.104 08.09.2022 17:01
Letzter Beitrag: Martin.Henz
  Fehlercode 1097 beim Aufrufen einer C++ DLL Dr. Nuke 11 5.941 22.07.2022 22:39
Letzter Beitrag: Martin.Henz
  Einbinden einer DLL mit mehr Output-Parametern, als Input-Parametern Herm 3 6.154 14.06.2011 11:12
Letzter Beitrag: rolfk
  DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL Dimitri 24 26.871 02.07.2010 15:16
Letzter Beitrag: Dimitri
  Einbinden einer dll (*.so) Apu 3 6.196 08.03.2010 19:51
Letzter Beitrag: rolfk
  Einbinden einer DLL, Speichermanagement Mictlantecutli 3 7.811 14.10.2009 08:33
Letzter Beitrag: Mictlantecutli

Gehe zu: