11

我对 CLR 相当陌生,我正在阅读 setWindowPos 的 c++/CLI 文档,并且函数的定义是这样的。

BOOL WINAPI SetWindowPos(
  _In_      HWND hWnd,
  _In_opt_  HWND hWndInsertAfter,
  _In_      int X,
  _In_      int Y,
  _In_      int cx,
  _In_      int cy,
  _In_      UINT uFlags
);

我有 C++ 经验,所以我明白,例如,“HWND”是数据类型,“hWnd”是变量名。

但是什么是_in_ ”和“_in_opt_”?

我猜它们是“输入变量”或其他东西的缩写。

文档中提到 hWndInsertAfter 是可选的。这是否意味着如果不需要,我可以在函数调用中简单地省略/不打扰将变量传递给此参数?

例如

SetWindowPos(this,0,0,GetSystemMetrics(SM_CXMAXIMIZED),GetSystemMetrics(SM_CYMAXIMIZED),SWP_NOZORDER);
//Note that we're one parameter short here (the second is missing)

(这会让我感到困惑,因为我在其他地方看到 C++ 不支持可选参数。只有默认参数和重载)

4

1 回答 1

19

这是微软的Source-Code Annotation Language. _In_Opt_意味着你可以通过NULL

于 2013-05-28T17:52:08.290 回答