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.
Platform Invoke zkopíruje parametry řetězců a v případě potřeby je převede z formátu .NET Framework (Unicode) na nespravovaný formát (ANSI). Vzhledem k tomu, že spravované řetězce jsou neměnné, vyvolání platformy je nespravuje zpět z nespravované paměti do spravované paměti při vrácení funkce.
Následující tabulka uvádí možnosti zařazování řetězců, popisuje jejich použití a poskytuje odkaz na odpovídající ukázku rozhraní .NET Framework.
| Řetězec | Popis | Ukázka |
|---|---|---|
| Podle hodnoty. | Předá řetězce jako parametry typu In. | MsgBox |
| Jako výsledek. | Vrátí řetězce z nespravovaného kódu. | Řetězce |
| Odkazem. | Předává řetězce jako parametry In/Out pomocí StringBuilder. | Vyrovnávací paměti |
| Ve struktuře podle hodnoty. | Předává řetězce ve struktuře, která je parametrem In. | struktury |
| Ve struktuře podle odkazu (char*). | Předává řetězce ve struktuře, která je vstupním/výstupním parametrem. Nespravovaná funkce očekává ukazatel na vyrovnávací paměť znaku a velikost vyrovnávací paměti je členem struktury. | Řetězce |
| Struktura podle odkazu (char[]) | Předává řetězce ve struktuře, která je vstupním/výstupním parametrem. Neřízená funkce očekává zabudovanou vyrovnávací paměť znaků. | OSInfo |
| Ve třídě podle hodnoty (char*). | Předává řetězce do třídy (třída je vstupní/výstupní parametr). Nespravovaná funkce očekává ukazatel na vyrovnávací paměť znaků. | OpenFileDlg |
| Ve třídě podle hodnoty (char[]). | Předává řetězce do třídy (třída je vstupní/výstupní parametr). Neřízená funkce očekává zabudovanou vyrovnávací paměť znaků. | OSInfo |
| Jako pole řetězců podle hodnoty. | Vytvoří pole řetězců, které jsou předány podle hodnoty. | polí |
| Jako pole struktur, které obsahují řetězce podle hodnoty. | Vytvoří pole struktur obsahujících řetězce, které je předáváno hodnotou. | polí |