2

我遇到了这段代码,但我以前没有见过 [in] 或 [out]。这些是什么?

HRESULT QueryInterface([in] REFIID riid, [out] void **ppvObject) {

}
4

3 回答 3

4

这些是定向 IDL 属性。它们指示数据传递的方向。

于 2013-05-23T16:38:56.473 回答
3

正如您的问题中所提供的,代码可能无法编译。话虽这么说,虽然不常见,但您可能会遇到以下代码:

HRESULT QueryInterface(IN REFIID riid, OUT void **ppvObject)

编译是因为某处 IN 和 OUT 是#define'd(为空)。这有时通过指针来完成,以指示参数是输入(只读),还是输出(写入),或者两者兼而有之。该指示是为了读者的利益。

于 2013-05-23T16:28:10.760 回答
2

它表示正在发送[in]给函数的值,或者在[out]它被更改的情况下,[out]put 也是如此

于 2013-05-23T16:26:50.467 回答