Zařazování řetězců

Platforma v případě potřeby zkopíruje parametry řetězce 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.

String Popis Vzorek
Podle hodnoty. Předá řetězce jako parametry In. Msgbox
Výsledkem je. 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 parametrem In/Out. Nespravovaná funkce očekává ukazatel na vyrovnávací paměť znaku a velikost vyrovnávací paměti je členem struktury. Řetězce
Ve struktuře podle odkazu (char[]) Předává řetězce ve struktuře, která je parametrem In/Out. Nespravovaná funkce očekává vloženou vyrovnávací paměť znaků. OSInfo
Ve třídě podle hodnoty (char*). Předává řetězce ve třídě (třída je parametr In/Out). Nespravovaná funkce očekává ukazatel na vyrovnávací paměť znaků. OpenFileDlg
Ve třídě podle hodnoty (char[]). Předává řetězce ve třídě (třída je parametr In/Out). Nespravovaná funkce očekává vloženou vyrovnávací paměť znaků. OSInfo
Jako pole řetězců podle hodnoty. Vytvoří pole řetězců, které jsou předány podle hodnoty. Pole
Jako pole struktur, které obsahují řetězce podle hodnoty. Vytvoří pole struktur obsahujících řetězce a pole se předá hodnotou. Pole

Viz také