c++ - __in _out __in_opt _ allowed() 的目的是什么,它们是如何工作的?我应该在自己的代码中使用类似的结构吗?

标签 c++ c com winmain

其中一些预处理器定义在 WinMain 函数和其他 windows 库函数中。他们的目的是什么?它们是如何工作的?将它们写入您的实现或函数调用是一种好习惯吗?

我最初的研究表明,它们只是简单地设置为:

#define __in 
#define __out
#define __in_opt

意味着它们在预处理器过程中被 nothing 替换。它们只是一种文档方法,没有任何功能吗?

如果是这样,我可以看到像这样记录代码的好处。使用 doxygen 之类的东西,您需要写出两次参数名称。所以这在理论上可以帮助减少重复并保持一致性......

我不知道 __allowed() 应该如何工作。

最佳答案

它们是源代码注释语言中的 SAL 注释。微软工具依赖于它。 MSDN 库文章 is here .一个很好的例子是Code Analysis .另一个完全不相关但受这些注释支持的工具是 Pinvoke Interop Assistant。

关于c++ - __in _out __in_opt _ allowed() 的目的是什么,它们是如何工作的?我应该在自己的代码中使用类似的结构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4239809/

相关文章:

c++ - 模型在窗口调整 OpenGL 3.2 大小时拉伸(stretch)

c++ - 无法选择模板构造函数?

图表的 C 库

c - 处理返回的 C 字符串

.net - Windows 文件资源管理器有 COM 或 .NET 接口(interface)吗?

c# - 应该以什么顺序释放 COM 对象和垃圾收集?

c++ - 什么是开始()==结束()?

python - 在 Eclipse 中编译 C++ 方法并从 python 调用 C++ 方法时出现问题

c - 在 Visual 项目中包含一个文件以便使用它

visual-studio - 如何在 VS2005 中自动生成的互操作程序集中保留 COM DLL 版本?