1

我正在运行一个 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 客户端程序。任何人都可以帮忙吗?

谢谢。

4

0 回答 0