問題タブ [microsoft-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 に答える
777 参照

windows - Microsoft SAL 注釈 - オプションのパラメーター

winbase.h では、DeviceIoControl 関数は次のように定義されています。

パラメータlpBytesReturnedの注釈はオプションとして定義されています。
ただし、呼び出し元が同期 I/O を使用する場合、これはオプションのパラメーターではありません。
呼び出し元がlpBytesReturnedに Null を設定し、同期 I/O を使用すると、アプリケーションが停止する可能性があります。

関数を作成するとき、この問題に直面することがよくあります。
SAL からこれを表現する方法がわかりません。

これを表現する注釈はありますか?

PS できればSALタグを作ってください。SOにはまだタグがありません。

0 投票する
1 に答える
2904 参照

windows - __deref_out_opt と __deref_opt_out の違いは何ですか?

次のSAL注釈の違いは何ですか?

0 投票する
1 に答える
288 参照

windows - 「int」パラメーターに関連する Microsoft の SAL Deref=1 プロパティ?

Microsoft の SAL (Source Annotation Language) は良いものだという考えにたどり着き、その言語とアノテーション プロパティの意味を調べました。

「 int」パラメータに関連する SAL の「 Deref」プロパティの使用について一般的な質問があります。Visual Studio 10 を実行している ctype.h インクルード ファイルから取得した isalpha() 関数の SAL を使用して、私の質問を説明しましょう。

[戻り値:SA_Post(MustCheck=SA_Yes)] int __cdecl isalpha([SA_Pre(Null=SA_No)] [SA_Pre(Deref=1,Valid=SA_Yes,Access=SA_Read)] int _C);

単一のパラメーター _C が「int」の場合、「[SA_Pre( Deref =1 ,Valid=SA_Yes,Access=SA_Read)]」は何を意味しますか? int を 1 回 (Deref=1) 意味のある方法で逆参照するにはどうすればよいですか?

私が考えることができる唯一の説明は、整数がctypeの内部バイト配列への参照であると注釈が述べているということです。静的アナライザーはこの注釈をどのように利用できるでしょうか?

0 投票する
2 に答える
9800 参照

visual-c++ - __in 、 __out 、 __in_opt の意味

関数パラメーターの変数の前に使用されるこれらのキーワードの意味は何ですか?

  • __in
  • __out
  • __in_opt
0 投票する
3 に答える
1479 参照

c++ - Microsoft の Source Annotation Language (SAL) -- それを利用する方法はありますか?

この情報を保存する C パーサーなど、Microsoft の SAL を利用する方法はありますか? それとも、Microsoft の内部使用のみを目的として Microsoft によって作成されたものですか?

他の言語用の C ライブラリ バインディングの作成など、多くのタスクに非常に役立ちます。

0 投票する
1 に答える
3548 参照

c++ - SAL (Source Annotation Language) の目的と、SAL 1 と 2 の違いは何ですか?

タイトルで尋ねられたように:

SAL (Source Annotation Language) の目的と、SAL 1 と SAL 2 の違いは何ですか?

使用法の基本を理解しています。これは、関数に渡される各変数の目的と、静的コード分析のための他のさまざまなことを強調するのに役立ちますが、実際にどれだけの違いが生じるか (パラメーター要件の明確化を無視して)プロジェクトの他のプログラマー)?

If I was to have the following prototype:

This is supposed to "tell" the static analyser that the function will return 1 upon it's successful operation, that pTest is a pointer which must not be nullptr and that pOptional is a pointer which may or may not be nullptr. However, can't the static analyser get this information from the function definition itself? Moreover, what does it do with the information it gets such as the success criteria?

Furthermore, why is there a difference between SAL 1 and SAL 2, why did microsoft decide to change the way they named their macros (i.e. from __out to _Out_ and __success to _Success_?)

I'm sorry if this is described somewhere in detail on the MSDN but I was unable to find it or any other question on StackOverflow with a detailed answer so I thought I'd ask in the hopes of having my curiosity satisfied.

Thanks in advance for your time!

0 投票する
3 に答える
2996 参照

sql - SQL サブクエリの結合と合計

両方に共通の列名 ID を持つ表 1 と 2 があります。

表1には、次を使用してトリミングできた行の重複エントリがあります。

表 2 には、必要な ID の数値エントリ (使用済みドル) が重複しており、合計することができました。

-これら 2 つのクエリを 1 つに結合する必要があるため、テーブル 1 とテーブル 2 の結果の JOIN を取得します。(a) テーブル 1 に重複がなく、(b) テーブル 2 の合計 $ 値

例:

注 : 表 1 と表 2 の行数は同じではありません。

ありがとう