0

アセンブリで記述されたC++メソッドとして使用することを目的としたいくつかのプロシージャがすでにあります(適切な呼び出し規約と名前マングリングを使用)。しかし、私がそれらを使おうとすると

class Foo {
    extern void foo();
}

「クラスメンバーのストレージクラスが無効です」というメッセージが表示されます。C ++メソッドを外部で適切に定義するにはどうすればよいですか?

回避策の1つは、インラインアセンブリを使用してthiscall規則をサポートし、アセンブリバージョンを呼び出すだけのメソッドを定義するサンクを生成することです。実際、私はすでにこれらを生成するためのコードを持っています。ただし、このより直接的な方法を機能させたいと思っています。

4

1 に答える 1

2

extern をそのままにしておきます。関数は、デフォルトで外部から表示されます。

于 2012-08-03T18:25:24.560 に答える