Per Ref in Python an einen COM senden
Posted: 27 Dec 2024, 13:28
Ich versuche, per Ref ein Array von Floats (oder Strings) zu senden, erhalte aber eine Fehlermeldung, die besagt, dass das Element send kein ctypes sein kann, sondern ein reales Element sein muss.
Das ist der Code:
Ich erhalte diesen TypeError: muss eine echte Zahl sein, nicht _ctypes.CARgObject
Die Funktion funktioniert auf VBA und ich probiere es auch aus C#, aber ich erhalte eine Fehlermeldung bei:
Die DLL ist ein COM-Objekt, das in der PulseLabShop-Software verwendet wird. Die Verwendung von VBA ermöglicht die Kommunikation mit einer Anwendung. Die DLL hat keine weitere Dokumentation als die, die durch dir der Klasse abgerufen werden kann.
Die Hauptfrage ist jedoch, ob es möglich ist, byref irgendwie ein Array und nicht ein Ctypes-Array zu senden.
Das ist der Code:
Code: Select all
import win32com.client
import ctypes
pulse = win32com.client.Dispatch("Pulse.Labshop.Application")
def SaveMeasurement():
FunctionO = pulse.Application.Project.FunctionOrganiser
FunctionG = FunctionO.FunctionGroups("Test1")
Function = FunctionG.Functions("Test2")
MyFunction = Function.FunctionData
Entries = MyFunction.NumberOfXAxisEntries
entries_ref = (ctypes.c_float * Entries)(*range(Entries))
MyFunction.Frequencies(ctypes.byref(entries_ref))
SaveMeasurement()
Die Funktion funktioniert auf VBA und ich probiere es auch aus C#, aber ich erhalte eine Fehlermeldung bei:
Code: Select all
FunctionO.FunctionGroups("Test1")
Die Hauptfrage ist jedoch, ob es möglich ist, byref irgendwie ein Array und nicht ein Ctypes-Array zu senden.