Condividi tramite


Funzione FindStringOrdinal (libloaderapi.h)

Individua una stringa Unicode (caratteri wide) in un'altra stringa Unicode per un confronto non linguistico.

Sintassi

int FindStringOrdinal(
  [in] DWORD   dwFindStringOrdinalFlags,
  [in] LPCWSTR lpStringSource,
  [in] int     cchSource,
  [in] LPCWSTR lpStringValue,
  [in] int     cchValue,
  [in] BOOL    bIgnoreCase
);

Parametri

[in] dwFindStringOrdinalFlags

Flag che specificano i dettagli dell'operazione di ricerca. Questi flag si escludono a vicenda, con FIND_FROMSTART l'impostazione predefinita. L'applicazione può specificare solo uno dei flag di ricerca.

Valore Significato
FIND_FROMSTART
Cercare la stringa, a partire dal primo carattere della stringa.
FIND_FROMEND
Cercare la stringa nella direzione inversa, a partire dall'ultimo carattere della stringa.
FIND_STARTSWITH
Verificare se il valore specificato da lpStringValue è il primo valore nella stringa di origine indicato da lpStringSource.
FIND_ENDSWITH
Verificare se il valore specificato da lpStringValue è l'ultimo valore nella stringa di origine indicata da lpStringSource.

[in] lpStringSource

Puntatore alla stringa di origine, in cui la funzione cerca la stringa specificata da lpStringValue.

[in] cchSource

Dimensioni, in caratteri esclusi il carattere Null di terminazione, della stringa indicata da lpStringSource. L'applicazione deve in genere specificare un numero positivo o 0. L'applicazione può specificare -1 se la stringa di origine è con terminazione Null e la funzione deve calcolare automaticamente le dimensioni.

[in] lpStringValue

Puntatore alla stringa di ricerca per cui la funzione esegue la ricerca nella stringa di origine.

[in] cchValue

Dimensioni, in caratteri esclusi il carattere Null di terminazione, della stringa indicata da lpStringValue. L'applicazione deve in genere specificare un numero positivo o 0. L'applicazione può specificare -1 se la stringa è con terminazione Null e la funzione deve calcolare automaticamente le dimensioni.

[in] bIgnoreCase

TRUE se la funzione deve eseguire un confronto senza distinzione tra maiuscole e minuscole e FALSE in caso contrario. Il confronto non è un'operazione linguistica e non è appropriato per tutte le impostazioni locali e le lingue. Il comportamento è simile a quello per l'inglese.

Valore restituito

Restituisce un indice in base 0 nella stringa di origine indicata da lpStringSource se l'operazione riesce. Se la funzione ha esito positivo, la stringa trovata corrisponde al valore di lpStringValue. Un valore restituito pari a 0 indica che la funzione ha trovato una corrispondenza all'inizio della stringa di origine.

La funzione restituisce -1 se non riesce o se non trova la stringa di ricerca. Per ottenere informazioni estese sull'errore, l'applicazione può chiamare GetLastError, che può restituire uno dei codici di errore seguenti:

  • ERROR_INVALID_FLAGS. I valori specificati per i flag non sono validi.
  • ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.
  • ERROR_SUCCESS. L'azione è stata completata correttamente, ma non ha restituito risultati.

Commenti

Poiché FindStringOrdinal fornisce un confronto binario, non restituisce risultati linguistici appropriati. Il confronto ordinale potrebbe essere scambiato per il comportamento di ordinamento in inglese. Tuttavia, non trova corrispondenze quando i caratteri variano in base a quantità linguisticamente insignificanti. Per informazioni sulla scelta di una funzione di ordinamento appropriata, vedere Ordinamento .

A differenza delle funzioni NLS che restituiscono 0 per errore, questa funzione restituisce -1 se ha esito negativo. In caso di esito positivo, restituisce un indice basato su 0. L'uso di questo indice consente alla funzione di evitare errori off-by-one e sovraccarichi del buffer di un carattere.

Questa funzione è una delle poche funzioni NLS che chiama SetLastError anche quando ha esito positivo. Esegue questa chiamata per cancellare l'ultimo errore in un thread quando non riesce a trovare la corrispondenza con la stringa di ricerca. In questo modo viene cancellato il valore restituito da GetLastError.

A partire da Windows 8: FindStringOrdinal è dichiarato in Libloaderapi.h. Prima di Windows 8, è stato dichiarato in Winnls.h.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione libloaderapi.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

FindNLSString

FindNLSStringEx

Gestione dell'ordinamento nelle applicazioni

Supporto per la lingua nazionale

Funzioni di supporto per il linguaggio nazionale