【问题标题】:Python and pure virtual function errorPython和纯虚函数错误
【发布时间】:2013-03-07 12:35:46
【问题描述】:

我用 Python 和 PyEvolve 编写了一个 GA。在此我使用win32com.client 从另一个程序(“Gsa.ComAuto”一个用于结构工程的程序)调用 COM 库。对于几代人来说,GA 工作正常,但在出现错误消息之后。该消息是 R6025 Run Time Message Pure Virtual Function Call,参考 gsa.exe。我不知道为什么会出现此消息,可能是因为我多次调用 Com 对象?

【问题讨论】:

  • 你有没有在你的 python 代码中使用 CoInitialize 初始化 COM?
  • 不,我没有。在我以不同的定义多次调用 gsaAuto 之后,我将 import win32com.client gsaAuto=win32com.client.Dispatch("Gsa.ComAuto") 放在开头。不幸的是我不知道什么是 CoInitialize,你能解释一下吗?非常感谢你

标签: python win32com pure-virtual


【解决方案1】:

试试这个:

import win32com.client
win32com.client.pythoncom.CoInitialize()

这将是initialize your thread for using COM

【讨论】:

  • 非常感谢。我明天试试,我希望它有效。明天我会公布结果。再次感谢您。
  • 也许这是一个愚蠢的问题,但我必须将 win32com.client.pythoncom.CoInitialize() 放在使用 COM 对象的每个定义中,还是只放在主定义中?
  • 您需要为任何线程调用它,只需一次。所以,通常在模块的顶部是可以的,但如果你正在制作自己的线程,它们也需要尽早初始化。
猜你喜欢
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 2012-01-28
  • 2013-10-04
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多