我已經有一些程序打算用作在Assembly中編寫的C++方法(使用適當的調用約定和名稱修飾)。但是,當我嘗試使用它們時在C++中聲明方法extern
class Foo {
extern void foo();
}
我得到「類成員的無效存儲類」。我如何正確地從外部定義一個C++方法?
一種解決方法是生成一個thunk來定義簡單地調用程序集版本的方法,使用內聯彙編來支持thiscall約定。事實上,我已經有了生成這些代碼的代碼。不過,我真的很想得到這個更直接的方法。
我已經有一些程序打算用作在Assembly中編寫的C++方法(使用適當的調用約定和名稱修飾)。但是,當我嘗試使用它們時在C++中聲明方法extern
class Foo {
extern void foo();
}
我得到「類成員的無效存儲類」。我如何正確地從外部定義一個C++方法?
一種解決方法是生成一個thunk來定義簡單地調用程序集版本的方法,使用內聯彙編來支持thiscall約定。事實上,我已經有了生成這些代碼的代碼。不過,我真的很想得到這個更直接的方法。
你嘗試過放棄'extern'嗎? – jxh 2012-08-03 18:23:40
你可以使用'extern「C」void foo();'它將使用C的調用約定(無名稱修飾/裝飾)。你應該可以從程序集中調用它們。 – Wug 2012-08-03 18:25:36