' schrieb:Also ich habe bis jetzt noch nicht String oder Array Handles als Datenelemente in UserEvents von meinem C Code gebraucht. Grundsätzlich sind da aber zwei Möglichkeiten:
Entweder erwartet die LVPostUserEvent() Funktion dass sie Handles erben kann oder nicht.
Ich tendiere dazu anzumehmen dass sie das eben schon will, da dass mit dem allgemeinen Speicherkonzept von LabVIEW einhergeht.
Das heisst LVPostUserEvent nimmt ganz einfach an, dass ein Handle in den userEvent Daten nicht kopiert werden muss sondern einfach geerbt werden kann. Das ist auch speicherplatzmässig und in runtime performance effizienter.
Das heisst für Dich Du musst vor jedem PostUserEvent einen LStrHandle anlegen, die gewünschten Daten hineinekopieren und als Parameter an die Funktion mitgeben. Wenn Du beim Konzept der StringHandles bleiben willst wäre eventuel die Funktion LStrPrintf() für Dich interessant. Du musst ihr zwar ein gültiges LStrHandle übergeben (DSNewHClr(4) ist dafür aber genug) aber das formatieren des Strings und anschliessendes korrektes Resizen des Handle's sowie einfüllen der richtigen Anzahl Characterelemente macht alles die LStrPrintf() Funktion für Dich.
Sobald die LVPostUserEvent() Funktion zurückkehrt musst Du dieses Handle als von LabVIEW konsumiert betrachten und ist es in Deiner Funktion halt nicht mehr benützbar. Keine globalen LStrHandle also!
Wenn ich falsch habe, solltest Du den Speicher langsam umhoch gehen sehen da bei jedem Aufruf ein Speicherhandle verloren geht aber ich glaube es eher nicht.
Rolf Kalbermatter
Hallo Rolf, liebe LabVIEWforumnutzer,
@rolf: danke vielmals für deine hilfe. es hat alles funktioniert - auch das mit dem string (ich bin einfach zu schlampig, und hab die buffer zu klein dimensioniert..)
jedenfalls funktioniert jetzt ant unter LabVIEW. ich muss noch ein paar sachen ausprogrammieren (zb. für acknowledge messages usw.) wenn dass dann fertig ist, und wer interesse hat das zu nutzen kontaktiert mich einfach - da mir so viel geholfen wurde, möchte ich auch anderen helfen, deshlab gibts den code, die dll und vis natürlich gratis von mir für jede(n) der das brauchen kann.
liebe grüße aus wien
masht