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é
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.