【发布时间】:2014-10-18 10:28:00
【问题描述】:
我正在玩网络服务示例。我有传递给各种函数的错误变量。
WS_ERROR* error = NULL;
我想知道这个错误是如何构造的。我在WS_ERROR 上按F12,现在我在WebServices.h 上有定义:
typedef struct _WS_ERROR WS_ERROR;
嗯,WS_ERROR 是结构 _WS_ERROR。通过在_WS_ERROR 上按F12 深入到_WS_ERROR 并停止!我无法深入了解_WS_ERROR 的定义。为什么?那么,_WS_ERROR 是如何定义的呢?
【问题讨论】:
-
我不认为你可以看到里面。 MSDN 说“用于引用错误对象的不透明类型。” msdn.microsoft.com/en-us/library/windows/desktop/…
-
它是一个不透明类型,你不应该知道它长什么样。它带有“丰富的错误”,这是一种在函数失败时更多地了解究竟出了什么问题的方法。您必须使用 WsCreateError() 创建错误对象。并在使用 WsGetErrorString() 调用失败后对其进行查询。之后您可能会使用 WsResetError() 再次清除它,以便下次调用时可用。
标签: c++ winapi visual-c++