问题标签 [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.
c - 如何在 typedef 函数上强制执行 SAL 注释?
假设我像这样导入一个 DLL 函数:
现在,RandomNumber
DLL 代码中的这个函数用 SAL 注释进行了注释_Check_return_
。我还希望在调用它的代码中强制执行此注释。我该怎么做?
如果我将注释放在typedef
:
pRandomNumber
稍后当我初始化 a并在未检查返回值的情况下调用它时,分析无法报告警告。
如果我将注释放在一个实例上:
当我调用它而不检查返回值时,分析仍然无法报告。
有什么办法可以强制执行吗?一种方法是编写一个带有注释的存根内联函数,但这对我来说很难看。
c++ - 在哪里将 SAL 注释插入到 C++ 中的 lambda 表达式?
如果这是 lambda 表达式:[](){}
我应该在哪里插入这个 SAL 注释:_Releases_lock_(this->mutex)
谢谢。
salesforce - 在 Salesforce SAL 包的可用性设置中启用自定义约会长度时出错
在 Salesforce SAL 包的可用性设置页面中启用自定义约会长度复选框时,我收到以下错误。错误 => 没有可用于分配约会持续时间的自定义主题对象。请联系您的学生成功中心管理员寻求帮助。
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_ 注释似乎已更改,因为它不再需要两个参数。
我的测试代码:
谢谢!
-丹尼尔
c - “_inout”参数可以是“const”吗?
我的理解是,如果一个指针指向某个被读写的东西,即“ inout ”,那么根据定义它不能是“const”(因为“out”),C 头文件中有指定的原型参数为“ inout const”,这对我来说没有意义。例如:
EXTERN_C _Check_return_ NTSTATUS APIENTRY D3DKMTEnumAdapters2(_Inout_ CONST D3DKMT_ENUMADAPTERS2*);
正如我上面提到的,我看不出参数如何是“const”,因为它也是“out”。
我是误解了什么还是这个定义不正确?
谢谢您的帮助。
`