Sdílet prostřednictvím


Formátování řetězců

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í

Viz také