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.
P/Invoke v případě potřeby kopíruje řetězcové parametry a převádí je z formátu řetězců .NET (Unicode) do nespravovaného formátu (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 .NET.
| String | Description | Sample |
|---|---|---|
| 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. | Pole |
| Jako pole struktur, které obsahují řetězce podle hodnoty. | Vytvoří pole struktur obsahujících řetězce, které je předáváno hodnotou. | Pole |