C++/CLI 中的“_in_”和“_in_opt_”是啥意思?
Posted
技术标签:
【中文标题】C++/CLI 中的“_in_”和“_in_opt_”是啥意思?【英文标题】:What do "_in_" and "_in_opt_" mean in C++/CLI?C++/CLI 中的“_in_”和“_in_opt_”是什么意思? 【发布时间】:2013-05-28 17:50:41 【问题描述】:我是 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++ 不支持可选参数。只有默认参数和重载)
【问题讨论】:
What is _In_ in C++?的可能重复 是的,我刚刚找到了这个类似的主题。我承认我最初的研究不够好,对不起。但是,我从这个问题中得到的答案与我的具体问题更相关。 【参考方案1】:这是微软Source-Code Annotation Language
的一部分。 _In_Opt_
表示你可以通过NULL
。
【讨论】:
非常感谢。现在我有了这些注解的名称(我最初认为它们是经过解释的,并且对编译器具有重要意义),我有了进一步研究的起点。 In_opt(opt 全部小写!)以上是关于C++/CLI 中的“_in_”和“_in_opt_”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
PoEdu - Windows阶段班 Po学校Windows编程 Lesson004_003-2 文件操作