問題タブ [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 投票する
3 に答える
9564 参照

c++ - メンバー関数へのポインターをC関数に渡す方法は?

重複の可能性:
C++クラスメンバー関数をCコールバック関数として使用する

Cライブラリ(winpcap)を使用してオブジェクト指向ライブラリを作成しています。ネットワークパケットが関数ポインタとして到着したときに呼び出されるコールバック関数を渡す必要があります。メンバー関数ポインターをwinpcapに渡し、デザインオブジェクトの方向を維持し、さまざまなオブジェクトがさまざまなパケットを受信できるようにします。ただし、私が理解している限り、メンバー関数の呼び出し規約は異なるため、C関数に渡すことはできません。これを修正する方法はありますか?boost :: bind(試行錯誤以外ではほとんど使用できません)を使った実験は実り多いものではありません。

メンバー関数の呼び出し規約を変更する方法はありますか?

これは、私が現在使用しているコールバック関数の定義であり、実際にwinpcapに渡すものです。

pcap_loopは、関数の名前を取ります(現時点ではグローバルスコープにあります)。これは、関数ポインタパラメータ(pcap_loopの3番目のパラメータ)の定義です。これはサードパーティのコードなので、実際に変更することはできません。この形式をとることができるメンバー関数が必要になります。

私が理解している限り、メンバー関数はこの呼び出しを使用し、c関数ポインターはcdeclを必要とします

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

assembly - 機能エピローグとプロローグとは何ですか?

いくつかのCPUアーキテクチャでいくつかの呼び出し規約を読んでいる間、私は次のようなものを読みました

「エピローグとプロローグ」、ある関数が別の関数から呼び出された場合。

関数プロローグまたはエピローグとは何ですか?

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

linux - WinCEとLinuxでのARM呼び出し規約?

WinCEとLinuxはARMで同じ呼び出し規約を使用していますか?違いは何ですか?

私がこれまでに見つけた文書は、あまりよく説明されていません。たとえば、http://msdn.microsoft.com/en-us/library/ms864497.aspxでは、1行に「WindowsCE .NETコンパイラ」と表示されていますが、次の行に「ARMコンパイラ」と表示されています。 「下部にあり、同じコンパイラを参照しているのか、異なるコンパイラを参照しているのかは明確ではありません。これが私がこれまでに見つけたものです...

私が尋ねる理由は、WinCEでLLVMを使用して実行時にいくつかの単純なコードを生成してみたいのですが、公式にはLinuxしかサポートしていません。

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

php - PHPクラスファイルを1回だけ含める

コード全体でPHPクラスのメソッドを使用していますが、そのクラスを使用しているすべてのファイルで「require_once」を実行したくありません。クラスを単一のファイルに含めて、コード内のどこからでもアクセスする方法はありますか?

ありがとう!

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

solaris - OpenSolaris syscall 呼び出し規約 (x86) とは何ですか?

OpenSolaris syscall 呼び出し規約 (x86) とは何ですか?

Fe コンソールに文字列を表示するプログラムを 32bit アセンブリで書きたいと思っています。これには、「書き込み」syscall (番号 4) を使用したいと思います。書き込みの C 定義は次のとおりです。

fildesbuf、およびnbyte引数を保持するレジスタはどれですか? どの割り込みを呼び出す必要がありますか?

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

visual-c++ - 呼び出し規約を使用する場合

さまざまな呼び出し規約を使用する際の主な要因は何ですか?誰かが、__cdeclまたは__stdcallまたは__fastcallさまざまな機会に特定の呼び出し規約を使用することを知っているのはいつですか。

例は本当に評価されるでしょう。

0 投票する
5 に答える
420 参照

assembly - なぜこれほど多くの異なる呼び出し規約があるのですか?

歴史的に、なぜそれはほぼすべての人と彼らの弟が彼ら自身の呼び出し規約を定義したように見えるのですか?あなたはC、C ++、Windows、Pascal、Fortran、Fastcall、そしておそらく私が言及しようとは思わなかった無数の他のものを持っています。大多数のユースケースでは、1つの規則が最も効率的であるべきではありませんか?どちらか一方を優先する正当な理由はありますか?

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

calling-convention - 呼び出し規約を cdecl から stdcall に変更する

VS2005 では、_cdecl 呼び出し規約を使用していましたが、プロジェクトはリンカー エラーなしでビルドされます。プロジェクトを VS2008 に移植する際に呼び出し規約を _stdcall に変更すると、次のエラーが発生します。

エラー LNK2001: 未解決の外部シンボル __imp__GCBOpen@8。

[構成設定] > [C\C++] > [一般] > [共通言語ランタイム サポート] が [共通言語ランタイム サポートなし] に設定されています。

問題を解決するために必要なプロジェクトの設定やコードの変更についてサポートが必要です。どんな助けでも大歓迎です。

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

gcc - ABI 呼び出し規約とアーキテクチャと混同する

私はこれらすべての用語と混同しています:

ABI、呼び出し規約、およびハードウェア アーキテクチャ。

ABI はアーキテクチャとリンクしています。x86-64 には、i386 とは異なる ABI があります。ただし、独自の呼び出し規約 cdecl を定義することもできます...

では、これらすべての概念の間のリンクは何ですか? どちらが他のものを定義していますか?

ほとんどの場合、私は ABI と混同していると思います。呼び出し規約の一部の中に何を入れますか?

ありがとう

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

windows - Microsoft が API 規則として stdcall を選択したのはなぜですか?

正当な理由はありますか?

それらの内部関数 (エクスポートされていない) も stdcall 規則ですか?