Veröffentlicht 13. Februar 200223 j Hallo zusammen, ich hab hier ein recht seltsames Phänomen: Ich hab einen COM-Server mit Dual-Threading-Modell, und da ich das Ding in einem Thread hochziehe, und in einem anderen das Interface benutzen muss, packe ich es, wie es sich gehört, im ersten Thread mit CoMarshalInterThreadInterfaceInStream in einen Stream, um es dann im anderen Thread wieder auszupacken. Das Dumme ist nur, wenn ich dann auf die Interface-Methoden zugreifen will, erhalte ich RPC_E_WRONG_THREAD. Was jetzt aber wirklich seltsam ist: Wenn ich nicht marshalle, dann funktioniert es! :confused: Hat irgend jemand schon mal von so was gehört?
27. Februar 200223 j Hmmm.... Was für ein Marshaling benutzt du denn ? Ein benutzerdefiniertes oder das Standardmarshaling ? Hast du deine Interfaces mit MIDL oder selbst erstellt. Falls mit MIDL muss man soweit ich weis auf oleautomation achten, da er nicht alle IDL-Variablen-Typen beim Standardmarshaling transportieren kann. Welche Modell wendest du an: STA MTA oder TNA ?
28. Februar 200223 j Autor So weit ich mich erinnern kann, war es Standard-Marshalling, MIDL und MTA. Hab momentan Urlaub drum kann ich jetzt nichts genaues sagen. Aber das mit den Typen werd ich prüfen danke.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.