问题标签 [sal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
128 浏览

c - 如何在 typedef 函数上强制执行 SAL 注释?

假设我像这样导入一个 DLL 函数:

现在,RandomNumberDLL 代码中的这个函数用 SAL 注释进行了注释_Check_return_。我还希望在调用它的代码中强制执行此注释。我该怎么做?

如果我将注释放在typedef

pRandomNumber稍后当我初始化 a并在未检查返回值的情况下调用它时,分析无法报告警告。

如果我将注释放在一个实例上:

当我调用它而不检查返回值时,分析仍然无法报告。

有什么办法可以强制执行吗?一种方法是编写一个带有注释的存根内联函数,但这对我来说很难看。

0 投票
0 回答
25 浏览

c++ - 在哪里将 SAL 注释插入到 C++ 中的 lambda 表达式?

如果这是 lambda 表达式:[](){} 我应该在哪里插入这个 SAL 注释:_Releases_lock_(this->mutex) 谢谢。

0 投票
0 回答
17 浏览

salesforce - 在 Salesforce SAL 包的可用性设置中启用自定义约会长度时出错

在 Salesforce SAL 包的可用性设置页面中启用自定义约会长度复选框时,我收到以下错误。错误 => 没有可用于分配约会持续时间的自定义主题对象。请联系您的学生成功中心管理员寻求帮助。

在此处输入图像描述

0 投票
0 回答
53 浏览

c++ - 使用 Visual Studio 锁定 SAL

我正在尝试添加锁定 SAL 语句以在我的应用程序中查找/防止错误锁定。就像缺少锁定调用和不匹配的锁定调用一样。我收到了我不明白的警告。我已将它们作为注释放在下面的示例中。我打开了代码分析并设置了 Microsoft All Rules。我正在使用 Visual Studio 2019 16.11.9。我也尝试过 Visual Studio 2022 17.0.5 并得到相同的结果。

我已经尝试用_Success_ 代替_When_。我尝试返回 bool 而不是 BOOL 和 _Success_(return) vs _Success_(return != 0)。

我读过的一些研究:

https://docs.microsoft.com/en-us/cpp/code-quality/c26135?view=msvc-170

前一篇文章来自 2021 年,因此可能比后一篇适用于 Visual Studio 2015 的文章更新。VS2015 示例无法按原样运行;_Success_ 注释似乎已更改,因为它不再需要两个参数。

https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2015/code-quality/best-practices-and-examples-sal?view=vs-2015

我的测试代码:

谢谢!

-丹尼尔

0 投票
1 回答
61 浏览

c - “_inout”参数可以是“const”吗?

我的理解是,如果一个指针指向某个被读写的东西,即“ inout ”,那么根据定义它不能是“const”(因为“out”),C 头文件中有指定的原型参数为“ inout const”,这对我来说没有意义。例如:

EXTERN_C _Check_return_ NTSTATUS APIENTRY D3DKMTEnumAdapters2(_Inout_ CONST D3DKMT_ENUMADAPTERS2*);

正如我上面提到的,我看不出参数如何是“const”,因为它也是“out”。

我是误解了什么还是这个定义不正确?

谢谢您的帮助。

`