5

DLLシンボルの16という数字は何_FooBar@16を表していますか?

4

2 に答える 2

8

これは、_FooBarが16バイトのパラメーターを受け取る__stdcall関数であることを意味します。

x86での32ビットの呼び出し規約については、http://blogs.msdn.com/oldnewthing/archive/2004/01/08/48616.aspxで説明されています。

于 2009-05-27T00:25:48.797 に答える
5

これは一般的な名前マングリングであり、関数の呼び出し規約によって異なります。

関数に適用されるさまざまな呼び出し規約と名前マングリングは、引数の受け渡しと命名規則として文書化されています。適用された正確なマングリングを確認するには、個々のリンクをクリックする必要があります。

あなたの場合、__stdcall次の命名規則を使用する規則があります。

名前の前にアンダースコア(_)が付いています。名前の後にアットマーク(@)が続き、その後に引数リストのバイト数(10進数)が続きます。したがって、int func(int a、double b)として宣言された関数は、次のように装飾されます。_func @ 12

于 2009-05-27T00:25:58.390 に答える