問題タブ [calling-convention]

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 に答える
2533 参照

windows - stdcall は可変引数を持つことができますか?

私の知る限り、可変引数を使用できるのは caller-clean-stack 規則だけです。
ちなみに、WinApi StringCchPrintfW はこのように宣言されています。 (SAL は削除しました)

__inline HRESULT __stdcall
StringCchPrintfW(
STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat, ...
);

stdcall にも可変引数を指定できますか?

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

c - printf: 破損した結果を説明する方法

与えます (Linux、gcc、x64)

実際、g++ でコンパイルすると、2 番目の 0 の代わりにランダムな結果が得られます。

に無効な指定子を指定したことprintf、およびそれがトリガーされることを理解しています不特定long long未定義の動作ですが、とdoubleが同じサイズであるため、なぜこの特定の破損が発生するのか疑問に思います。

0 投票する
7 に答える
1684 参照

c++ - 複雑な戻り値を返す方法は?

現在、私はいくつかのアセンブリ言語の手順を書いています。慣例にあるように、呼び出し元に整数などの値を返したい場合は、EAXレジスタに返す必要があります。ここで、float、double、enum、または複雑な構造体を返したい場合はどうすればよいのでしょうか。これらのタイプの値を返す方法は?

メモリ内の実際の値を指すEAX内のアドレスを返すことを考えることができます。しかし、それは標準的な方法ですか?

どうもありがとう~~~

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

calling-convention - WindowsでのPEバイナリファイルの呼び出し規約を調査するにはどうすればよいですか?

呼び出し規約が_cdeclか_stdcallか、それともそうでないかを示すツールはありますか?

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

linux - x86-64 関数のプリアンブルを理解できない

クラッシュが発生しました。調査中に、次のコードによって完全にブロックされていることがわかりました。

これはobjdump --disassemble /usr/lib64/libc.a、64 ビット Linux x86 システムで実行し、出力を検索することによって生成されます。これはAT&T の構文なので、宛先は右側にあります。

具体的には、最後の指示がわかりません。rdx関数がそのレジスタに触れる前に、レジスタの値をスタックのどこか(遠く、遠く)にメモリに書き込んでいるようです。私には、これは意味がありません。

私は呼び出し規約を読んでみましたが、私の最良の理論はrdx、パラメーターに使用されているため、コードは基本的にパラメーター値を直接「返す」ことです。これは関数の終わりではないので、もちろん実際には戻りません。

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

c# - 自動通話機能 (Dialer + IVR + Text to Speech)

VOIP を使用して自動通話機能を使用する必要があるシナリオがあります (図式的に)。

ダイヤルのプロセスを自動化し、システムを介して応答を取得するシステムまたはダイヤラが必要です。指定された番号に自動的にダイヤルでき (エージェントとのやり取りはありません)、ダイヤルの処理後に情報を提供できるツールが必要です。

エージェントとのやり取りは必要ありません。オンラインで注文を処理するアプリケーションを開発することになっています。テキスト読み上げプロセスによる販売者との確認が必要です。つまり、顧客がオンラインで注文すると、システムがチェックします。再販業者からの注文が利用可能かどうかを確認し、顧客に応答します。

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

c - 非標準の呼び出し規約をCでラップするにはどうすればよいですか?

詳細に立ち入ることなく、Cコードからの非標準の呼び出し規約を利用する必要があるとしましょう。この規則を使用する関数は、スタック上で複数の値を返す場合があります。インラインアセンブリを使用して呼び出しを行うラッパーに各関数を配置し、ラッパーに指定されたポインターパラメーターを介して出力を送信するのは簡単です。残念ながら、このソリューションは一般化されていないため、一般的なケースで機能するものが必要です。ただあきらめてマクロを使用してラッピングをカプセル化する必要がありinvokeますか、それとも、スタックを管理するという汚い作業を処理する可変個引数関数を作成するためのより一般的な方法がありますか?

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

perl - 他の人のPerlAPIを使用するときに$_を使用しないようにするのは慣例ですか?

他の誰かのAPIをデフォルトの変数$_と組み合わせて使用​​しているときに、私は捕まりました。

このための出力は次のとおりです。

$ _に依存する代わりに、独自のループ変数を指定すると、問題が修正されます。

他の誰かが書いたAPIと組み合わせて$_を使用することで、私は単純なだけですか?それとも、これはそのAPIモジュールのバグですか?

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

c++ - ESPの値が正しく保存されませんでした

代替テキスト

上の画像から、関数setAttributeが呼び出しから戻っ たときにエラーが発生していることがわかります。

写真に示されているこのエラーを解決する方法を知っている人はいますか?呼び出し規約間のエラーであることは知っていますが、setAttributeの呼び出し規約を確認するにはどうすればよいですか?

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

c++ - コールバック関数と通常の関数の違いは何ですか?

さて、関数の使用例CALLBACKと通常の関数の2つの例を示します。
注:これらの例は作成していません。

通常の機能

_stdcallを使用した関数

違いはなんですか?
注:呼び出し規約がどのように機能するかはわかりません。例が役立ちます。