Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Používejte dostatečně přenosné typy a konvence na hranicích binárního rozhraní. "Přenosný typ" je integrovaný typ jazyka C nebo struktura, která obsahuje pouze předdefinované typy jazyka C. Typy tříd lze použít pouze v případě, že volající a volaný souhlasí s rozložením, konvencí volání atd. To je možné pouze v případech, kdy jsou oba zkompilovány se stejnými nastaveními kompilátoru a kompilátoru.
Jak zploštět třídu pro přenositelnost jazyka C
Pokud je možné volající zkompilovat pomocí jiného kompilátoru nebo jazyka, "zploštět" na extern "C" rozhraní API s konkrétní konvencí volání:
// class widget {
// widget();
// ~widget();
// double method( int, gadget& );
// };
extern "C" { // functions using explicit "this"
struct widget; // opaque type (forward declaration only)
widget* STDCALL widget_create(); // constructor creates new "this"
void STDCALL widget_destroy(widget*); // destructor consumes "this"
double STDCALL widget_method(widget*, int, gadget*); // method uses "this"
}
Viz také
Vítejte zpátky v C++
Referenční dokumentace jazyka C++
Standardní knihovna C++