我正在运行一个 python 脚本来与注册为 com 应用程序的 ac# dll 交互,并且难以处理输出结构参数。我创建了一条 COM 记录并成功地将其传递给我的 COM 函数调用,但数据没有改变。
我的 c# 函数声明为
void GetData(ref MyData data);
MyData 是一个结构体,tlh 文件中的条目生成为
virtual HRESULT __stdcall GetData (
/*[in,out]*/ struct MyData * data ) = 0;
在我声明的python脚本中
self.myData = win32com.client.Record("MyData", self.myComServerObj)
并调用函数
self.myComServerObj.GetData(self.myData)
但是 self.myData 中的数据项在函数调用后保持不变。
我可以在服务器端调试函数调用并确认数据正在更改,还可以在客户端分配测试值并确认服务器正在接收这些值。即 struct 参数可以用作 [In] 参数,但不能用作 [out] 参数。
我还可以确认该功能适用于“C”COM 客户端程序。任何人都可以帮忙吗?
谢谢。