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.
Atribut [range] umožňuje zadat rozsah povolených hodnot pro argumenty nebo pole, jejichž hodnoty jsou nastaveny za běhu. Při použití s typem potrubí určuje atribut povolený rozsah pro počet prvků v blocích kanálu.
[range(low-val,high-val)] type-specifier declarator
Parametry
-
low-val
-
Nejnižší povolená hodnota, kterou může parametr nebo pole obsahovat.
-
high-val
-
Nejvyšší povolená hodnota, kterou může parametr nebo pole obsahovat.
-
Specifikátor typů
-
Celočíselný typ jiný než hyper nebo __int64, identifikátor typu k celočíselnému typu, typ výčtu nebo název typu kanálu.
-
deklarátor deklarátor
-
Standardní deklarátor jazyka C, například identifikátor.
Poznámky
Pomocí atributu [range] můžete upravit význam citlivých parametrů nebo polí, například těch, které se používají pro velikost nebo délku, s vyhovujícími nebo různými poli; nebo kdykoli chcete zkontrolovat hodnotu parametru nebo pole s rozsahem platných hodnot. Atribut se vztahuje na parametry nejvyšší úrovně a také parametry a pole nižší úrovně. Přidání atributu [range] do typu nemění formát drátu, takže nemá vliv na zpětnou kompatibilitu.
Atribut [range] lze použít také u vyhovujících dat, jako jsou vyrovnávací paměti nebo pole s atributem shody. Výsledkem je omezení všech velikostí shody pro vyhovující data na zadaný rozsah. Pokud jsou vyhovující data multidimenzionálním polem, je každá dimenze pole omezena na zadanou oblast.
Použití [range] u vyhovujících dat vyžaduje, aby cíl kompilace byl --target NT60 nebo vyšší.
Mějte na paměti, že při kompilaci souboru IDL musíte použít možnost /robust kompilátoru, aby se vygeneroval kód zástupných procedur, který bude tyto kontroly provádět. Bez přepínače /robust kompilátor MIDL ignoruje tento atribut.
Příklady
HRESULT Method1(
[in, range(0,100)] ULONG m,
[in, range(0,100)] ULONG n,
[size_is(m,n)] ULONG **pplong);
void InPipe(
[in, range(0, MAX_CHUNK) LONG_PIPE pipe_date);
Viz také