33

我对此进行了很多搜索,但没有找到有用的结果。

我目前正在尝试为 Windows 8 Metro 编写简单的 DirextX 游戏,并且遇到_In_了很多。我只是想知道它是什么。

另外,我看到了很多^用作指针的用法*,我觉得很奇怪。最重要的是,一些类有一个接口ref class MyClass,我相信这是为了 C# 的易读性。

无论如何,任何帮助都会很棒。

4

4 回答 4

33

它是一个SAL 注释,用于代码分析。注释本身被定义为宏,在正常构建中,这些宏扩展为空。

^ref classC++/CX的功能,这是一组语言扩展,旨在更轻松地使用 C++ 构建适用于 Windows 8 的 Metro 风格应用程序。两者都不是标准 C++ 的一部分。文档(先前链接)包含指向描述语言扩展的教程和参考资料的链接。

于 2012-07-12T17:34:47.203 回答
0

我认为(来自一个快速的谷歌)_in_那里表明参数是_out_函数/方法的输入还是输出()。

^托管指针(垃圾收集指针,与 C++/CLI 相关)。

于 2012-07-12T17:33:56.290 回答
0

sal.h文件中找到了这个定义

// Input parameters --------------------------

//   _In_ - Annotations for parameters where data is passed into the function, but not modified.
//          _In_ by itself can be used with non-pointer types (although it is redundant).

// e.g. void SetPoint( _In_ const POINT* pPT );
#define _In_                            _SAL2_Source_(_In_, (), _Pre1_impl_(__notnull_impl_notref) _Pre_valid_impl_ _Deref_pre1_impl_(__readaccess_impl_notref))
#define _In_opt_                        _SAL2_Source_(_In_opt_, (), _Pre1_impl_(__maybenull_impl_notref) _Pre_valid_impl_ _Deref_pre_readonly_)
于 2021-05-09T13:55:49.183 回答
-1

_Out_表示作为参考传递的参数。_In_意思相反。(_Out_ x)并且(&x)是相似的。

于 2013-03-07T11:43:42.007 回答