(15.09.2016 19:23 )hansi9990 schrieb: Sorry aber ich verstehe nicht besonders viel von dem was du mir erklärst, zum einen weiß ich nicht wo und wie ich eine LabVIEW Managerfunktion erstelle und so ganz verstehe ich auch die zweite Alternative mit der ole32.dll.
Könntest du mir evtl. ein paar Bilder zeigen damit ich es verstehe?
Ich habe es selbst schon versucht (siehe Anhang) bin mir aber nicht sicher ob das so richtig ist, aber ich denke nicht denn es funktioniert auch nicht. 
Das ist alles nicht ganz richtig:
1) CoTaskMemAlloc() hat als Parameter einen Unsigned Pointersized Integer, als Wert übergeben wo man als Eingangswert angibt wie gross der Speicherbereich sein soll der angelegt werden soll. Die Funktion hat als Rückgabewert einen Pointersized Integer der den Pointer darstellt. In LabVIEW wird das als 64 Bit Integer gehandhabt aber an der Call Library Node wird das korrekt nach 32 Bit oder 64 Bit konvertiert je nach dem welche LabVIEW Version Du verwendest.
2) CoTaskMemFree() funktioniert so wie Du es im Moment anlegst zwar für 32 Bit LabVIEW vielleicht, ist aber eigentlich auch falsch. Hier solltest Du den Paremeter ebenfalls als Pointersized Integer, als Wert übergeben konfigurieren, genauso wie den Rückgabewert der vorigen Funktion.
3) Und wenn Du schon dabei bist, mache alle Controls für diesen struct Pointer in Deinen VIs einen 64 Bit Integer und konfiguriere die entsprechenden Call Library Node Parameter ebenfalls als Pointersized Integer, als Wert übergeben.
Grundsätzlich liesse sich aber sagen, dass dieses Problem Dir eindeutig über den Kopf wächst, und Du solche Dinge durch einen Experten machen lassen solltest. Denn auch wenn es nicht mehr crasht, ist das noch lange keine Garantie, dass es gut ist, und mit Deinen Kenntnissen hast Du keinerlei Möglichkeiten zu überprüfen ob es dann wirklich richtig ist. Bei sowas vertrete ich die Meinung, dass gar keine Software besser ist, dann eine von der man nicht weiss ob sie richtig ist. Und bei Pointern und dergleichen ist es halt so, dass auch wenn es nicht mehr kracht und Blue Screen of Death und Speicherverletzungsausnahmedialoge auftauchen, die ganze Sache noch immer schrecklich falsch sein kann.