' schrieb:Ok, jede DLL hat ja einen Eintrittspunkt, so auch meine. Dort kann man den "Grund" des aufrufs abfangen. Mittels DLL_PRocess_Attach (so oder so ähnlich) wird mein Objekt erzeugt. Das heisst die DLL wird als Process von LabVIEW.exe aufgerufen. Den Thread starte ich innerhalb der DLL, also doch im selben Process einen neuen Thread, oder irre ich mich?
Wenn und nur wenn die DLL durch Deine LabVIEW Applikation aufgerufen wird. Wird das in Deinem Camera Treiber in einem Out Of Process Server gemacht, dann ja dann.... ist da kein LabVIEW.exe und auch kein lvrt.dll oder so und dann ist da auch keine PostLVUserEvent() Funktion.
Ich denke aber mal nicht dass Du dem Treiber einen DLL Namen und einen Funktionsnamen übergibst um aufzurufen aber eventuel schon einen Callback Funktionspointer und das ginge dann halt auch nicht wenn der diese Funktion nicht innerhalb des DLL Kontextes aufruft, denn Du von Deiner LabVIEW Applikation aufgerufen hast. Das kann zum Beispiel sein wenn die Camera Treiber DLL nur das ActiveX Frontend zu einem Out-of Process Treiber ist, etwa einem Serviceprozess der mittels ActiveX Marshaling mit diesem Frontend mittels RPC kommuniziert.
Aber ich kann mich da stundenlang im Kreise drehen um zu versuchen Dir dies mit immer neuen Worten zu erklären. Nur Du weisst was Du für einen Treiber aufrufst und hoffentlich ist es Dir auch möglich herauszufinden wie der intern aufgebaut ist und allfällige Callbacks ausführt. So wie es aussieht wird eine Funktion von Deiner DLL, die irgendwie PostLVUserEvent() aufruft NICHT im Kontext Deines LabVIEW Prozesses aufgerufen. Warum, wie, wo und überhaupt kann ich dir aber nicht erzählen.
Rolf Kalbermatter