如何在win32错误消息中读取EXCEPINFO元组?

时间:2017-05-04 19:05:20

标签: python-3.x win32com

我正在编写一个与Excel交互的应用程序。但是,我遇到了一个我无法追查的错误。我的追溯说:

pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352565), None)

使用com_error文档,我可以弄清楚大部分内容。但是,我无法弄清楚如何阅读内部元组。文档将此称为(可选)excepinfo元组,但它们没有描述它的内容。

1 个答案:

答案 0 :(得分:1)

来自https://msdn.microsoft.com/en-us/library/windows/desktop/ms221133(v=vs.85).aspx

typedef struct tagEXCEPINFO {
  WORD    wCode;
  WORD    wReserved;
  BSTR    bstrSource;
  BSTR    bstrDescription;
  BSTR    bstrHelpFile;
  DWORD   dwHelpContext;
  PVOID   pvReserved;
  HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO*);
  SCODE   scode;
} EXCEPINFO, *LPEXCEPINFO;

检查由我的某个应用程序生成的com_error输出,我认为excepinfo元组映射到     (wCode, bstrSource, bstrDescription, bstrHelpFile, dwHelpContext, scode)

不可否认,我没有费心去寻找pywin32的资源来寻找元组的构建位置。