Condividi tramite


Errori del compilatore

Durante la compilazione MIDL vengono generati i messaggi di errore seguenti:

Codice restituito Descrizione
MIDL2000
deve specificare /c_ext per i dichiaratori astratti
I dichiaratori astratti rappresentano un'estensione Microsoft per RPC e non sono definiti in RPC DCE. Pertanto, se il file include dichiaratori astratti, non è possibile eseguire la compilazione con l'opzione /osf , che impone una rigorosa compatibilità DCE. MIDL versioni 3.0 e successive usano l'opzione /c_ext come predefinita; l'opzione /osf disattiva l'opzione /c_ext . Per informazioni sui dichiaratori astratti, vedere Corpo ACF.
MIDL2001
la creazione di istanze dei dati è illegale; è necessario usare "extern" o "static"
La dichiarazione e l'inizializzazione nel file IDL non sono compatibili con RPC DCE. Questa funzionalità è un'estensione Microsoft non disponibile quando si compila in modalità DCE-compatibility (/osf).
MIDL2002
overflow dello stack del compilatore
Il compilatore ha esaurito lo spazio dello stack durante l'elaborazione del file IDL. Questo problema può verificarsi quando il compilatore elabora una dichiarazione o un'espressione complessa. Per risolvere il problema, semplificare la dichiarazione o l'espressione complessa.
MIDL2003
Ridefinizione
Questo messaggio di errore può essere visualizzato nelle circostanze seguenti: un tipo è stato ridefinito; è stato ridefinito un prototipo di procedura; esiste già un membro di una struttura o di un'unione con lo stesso nome; nel prototipo esiste già un parametro con lo stesso nome.
MIDL2004
Verrà usata l'associazione [auto_handle]
Nessun tipo di handle è stato definito come tipo di handle predefinito. Il compilatore presuppone che un handle automatico venga usato come handle di associazione per la procedura specificata.
MIDL2005
memoria insufficiente
Il compilatore ha esaurito la memoria durante la compilazione. Ridurre le dimensioni o la complessità del file IDL o allocare più memoria al processo.
MIDL2006
definizione ricorsiva
Una struttura o un'unione è stata definita in modo ricorsivo. Questo errore può verificarsi quando non viene rilevata una specifica del puntatore in una definizione di struttura nidificata.
MIDL2007
importazione ignorata; file già importato
L'importazione di un file IDL è un'operazione idempotente. Includerlo più volte non ha alcun effetto. Tutte le operazioni di importazione, ma la prima operazione di importazione vengono ignorate.
MIDL2008
le enumerazioni sparse richiedono /c_ext o /ms_ext
L'assegnazione di valori alle costanti di enumerazione non è compatibile con RPC DCE. Se si desidera usare le estensioni Microsoft a MIDL che consentono l'assegnazione di valori alle costanti di enumerazione, non è possibile compilare con l'opzione /osf , che impone una rigorosa compatibilità DCE. Le versioni MIDL 3.0 e successive usano le opzioni /c_ext e /ms_ext come predefinita; l'opzione /osf disattiva queste opzioni di estensione.
MIDL2009
simbolo non definito
Un simbolo non definito è stato usato in un'espressione. Questo errore può verificarsi quando si usa un valore enumerato non definito.
MIDL2010
tipo usato nel file ACF non definito nel file IDL
Viene usato un tipo non definito.
MIDL2011
dichiarazione di tipo non risolta
Il tipo riportato nel campo aggiuntivo informazioni sull'errore non è stato definito altrove nel file IDL.
MIDL2012
l'uso di costanti a caratteri wide richiede /ms_ext o /c_ext
Le costanti a caratteri wide sono un'estensione Microsoft per DCE IDL. Per usare il tipo di dati wchar_t, non è possibile compilare con l'opzione /osf , che esegue l'override delle opzioni predefinite del compilatore MIDL /ms_ext e /c_ext.
MIDL2013
l'uso di stringhe di caratteri wide richiede /ms_ext o /c_ext
Le costanti stringa a caratteri wide sono un'estensione Microsoft per DCE IDL. Per usare il tipo di dati wchar_t, non è possibile compilare con l'opzione /osf , che esegue l'override delle opzioni predefinite del compilatore MIDL /ms_ext e /c_ext.
MIDL2014
ridefinizione incoerente di tipo wchar_t
Il tipo wchar_t è stato ridefinito come tipo che non equivale a DOS breve senza segno *.
MIDL2015
importlib non trovato
Il compilatore non è riuscito a trovare la libreria dei tipi specificata dalla direttiva [ importlib]. Verificare che il percorso e il nome della libreria siano corretti.
MIDL2016
due blocchi di libreria
Due blocchi di libreria (anche con nomi diversi) nello stesso file di origine non sono validi. Combinare tutti gli elementi in un singolo blocco di libreria.
MIDL2017
L'istruzione dispinterface richiede una definizione per IDispatch
Questo errore si verifica in genere quando i file Stdole2.tlb o Oaidl.idl non vengono importati.
MIDL2018
errore durante l'accesso alla libreria dei tipi
Il compilatore non è riuscito a trovare la libreria dei tipi specificata. Verificare di aver specificato correttamente il percorso.
MIDL2019
errore durante l'accesso alle informazioni sul tipo
La libreria dei tipi importata è danneggiata, non valida o solo parzialmente costruita.
MIDL2020
errore durante la generazione della libreria dei tipi
Impossibile generare la libreria dei tipi. Una possibile causa di questo errore è specificare un percorso del file IDL con una lunghezza superiore a 126 caratteri. Oleaut32.dll non supporta nomi di percorso più lunghi di 126 caratteri.
MIDL2021
id duplicato
Le applicazioni usano l'istruzione id nei file IDL per specificare un DISPID per le funzioni membro. Le funzioni membro possono essere proprietà o metodi di interfacce o interfacce o dispinterfaces. Questo errore indica che il file IDL specifica lo stesso numero di identificatore per due metodi o proprietà.
MIDL2022
valore non valido o mancante per l'attributo entry
L'argomento per l'attributo entry può essere una stringa che specifica un punto di ingresso denominato o un numero ordinale che definisce il punto di ingresso. Questo argomento è mancante o contiene un valore non valido.
MIDL2023
il ripristino degli errori presuppone che
Il compilatore MIDL ha trovato caratteri non validi nel file IDL.
MIDL2024
ripristino degli errori elimina l'errore
Il compilatore MIDL ha trovato caratteri non validi nel file IDL. Ignora i caratteri illegali.
MIDL2025
errore di sintassi
Il compilatore ha rilevato un errore di sintassi nella riga specificata.
MIDL2026
non è possibile ripristinare gli errori di sintassi precedenti; interruzione della compilazione
Il compilatore MIDL tenta automaticamente di recuperare dagli errori di sintassi aggiungendo o rimuovendo elementi sintattici. Questo messaggio indica che nonostante questi tentativi di ripristino, il compilatore ha rilevato troppi errori. Correggere gli errori specificati e ricompilare.
MIDL2027
opzione pragma sconosciuta
Il pragma C specificato non è supportato in MIDL. Rimuovere il pragma dal file IDL.
MIDL2028
funzionalità non implementata
La funzionalità MIDL, anche se parte della definizione del linguaggio, non è implementata in Microsoft RPC e non è supportata dal compilatore MIDL. Ad esempio, le funzionalità del linguaggio seguenti non vengono implementate: bitset, pipe e tipo di carattere internazionale. La funzionalità lingua non implementata viene visualizzata nel campo informazioni aggiuntive sull'errore del messaggio di errore.
MIDL2029
tipo non implementato
Il tipo di dati specificato, anche se una parola chiave MIDL legale, non viene implementata in Microsoft RPC.
MIDL2030
non puntatore usato in un'operazione di dereferenza
Un tipo di dati che non è un puntatore è stato associato alle operazioni del puntatore. Non è possibile accedere all'oggetto tramite il puntatore non specificato.
MIDL2031
espressione ha una divisione per zero
L'espressione costante contiene la divisione per zero.
MIDL2032
espressione usa tipi incompatibili
I lati sinistro e destro dell'operatore in un'espressione sono di tipi incompatibili.
MIDL2033
l'espressione nonarray usa l'operatore di indice
L'espressione usa l'operazione di indicizzazione matrice in un elemento di dati che non è del tipo di matrice.
MIDL2034
lato sinistro dell'espressione non restituisce struct/union/enumerazione
L'operatore di riferimento diretto o indiretto "." o "->" è stato applicato a un oggetto dati che non è una struttura, un'unione o un'enumerazione. Non è possibile ottenere un riferimento diretto o indiretto usando l'oggetto specificato.
MIDL2035
espressione costante prevista
È prevista un'espressione costante nella sintassi. Ad esempio, i limiti di matrice richiedono un'espressione costante. Il compilatore genera questo messaggio di errore quando il limite della matrice viene definito con una variabile o un simbolo non definito.
MIDL2036
non è possibile valutare l'espressione in fase di compilazione
Il compilatore non può valutare un'espressione in fase di compilazione.
MIDL2037
espressione non implementata
Una funzionalità supportata nelle versioni precedenti del compilatore MIDL non è supportata nella versione del compilatore fornita con Microsoft RPC. Rimuovere l'espressione specificata.
MIDL2038
nessun attributo [pointer_default] specificato, presupponendo [univoco] per tutti i puntatori non specificati
Il compilatore MIDL offre tre diversi casi predefiniti per i puntatori che non hanno attributi puntatori. Parametri di funzione che sono puntatori di primo livello predefiniti a [ref] puntatori. Puntatori incorporati in strutture e puntatori ad altri puntatori (non puntatori di primo livello) per impostazione predefinita al tipo specificato dall'attributo [pointer_default] . Quando non viene fornito alcun attributo [pointer_default], questi puntatori a livello non superiore sono predefiniti per puntatori univoci. Questo messaggio di errore indica l'ultimo caso: non viene fornito alcun attributo [pointer_default] ed è presente almeno un puntatore non di primo livello che verrà considerato come puntatore univoco. Per altre informazioni, vedere Tipi di puntatore predefiniti.
MIDL2039
l'interfaccia non è conforme al marshalling di automazione
L'interfaccia non soddisfa i requisiti per un'interfaccia di automazione OLE. Verificare che l'interfaccia sia derivata da IUnknown o IDispatch.
MIDL2040
[out] Solo il parametro non può essere un puntatore a una struttura aperta
Un parametro [out]-only è stato usato come puntatore a una struttura, nota come struttura aperta, il cui intervallo e le dimensioni trasmesse vengono determinati in fase di esecuzione. Lo stub del server non conosce la quantità di spazio da allocare per una struttura aperta. Usare un puntatore a un puntatore alla struttura aperta e assicurarsi che l'applicazione server alloca spazio sufficiente.
MIDL2041
[out] Solo parametro non può essere una stringa non ridimensionata
Una matrice con l'attributo stringa è stata dichiarata come parametro [out]-only senza alcuna specifica di dimensione. Lo stub del server richiede informazioni sulle dimensioni per allocare memoria per la stringa. È possibile rimuovere l'attributo stringa e aggiungere l'attributo [size_is] oppure è possibile modificare il parametro in un parametro [in, out].
MIDL2042
[out] parametro non è un puntatore
Tutti i parametri [out] devono essere puntatori, in base alla convenzione call-by-value del linguaggio di programmazione C. Il parametro direzionale [out] indica che il server trasmette un valore al client. Con la convenzione call-by-value, il server può trasmettere dati al client solo se l'argomento della funzione è un puntatore.
MIDL2043
la struttura aperta non può essere un parametro
Una struttura aperta contiene una matrice conforme come ultimo elemento. Una struttura o un'unione viene troncata quando l'ultimo elemento di tale struttura o unione è una matrice conforme.
MIDL2044
[out] Handle di contesto/handle generico deve essere specificato come puntatore a tale tipo di handle
Un parametro handle di contesto o handle definito dall'utente con l'attributo direzionale [out] deve essere un puntatore a un puntatore.
MIDL2045
l'handle di contesto non deve derivare da un tipo con l'attributo [transmit_as]
Gli handle di contesto devono essere trasmessi come tipi di handle di contesto. Non possono essere trasmessi come altri tipi e non possono derivare da [transmit_is], [represent_as], [wire_marshal]o [user_marshal].
MIDL2046
non può specificare un numero variabile di argomenti in una routine remota
Le chiamate di routine remota che specificano un numero variabile di argomenti in fase di compilazione non sono compatibili con la definizione RPC DCE. Non è possibile usare un numero variabile di argomenti in Microsoft RPC.
MIDL2047
il parametro denominato non può essere "void"
Un parametro con il tipo di base void viene specificato con un nome.
MIDL2048
il parametro deriva da "coclasse" o "module"
La coclasse specifica un oggetto di primo livello che contiene interfacce e dispinterfaces. Non può essere passato come parametro.
MIDL2049
solo il primo parametro può essere un handle di associazione; è necessario specificare l'opzione /ms_ext
DCE RPC consente solo al primo parametro di essere un handle di associazione. La compilazione con l'opzione /osf disattiva l'opzione /ms_ext predefinita che supporta più parametri di handle e parametri di gestione invece della posizione a sinistra.
MIDL2050
impossibile usare [comm_status] in un parametro e in un tipo restituito
Sia la routine che uno dei relativi parametri hanno l'attributo [comm_status]. L'attributo [comm_status] specifica che un solo oggetto dati alla volta può essere di tipo error_status_t.
MIDL2051
[local] attributo in una routine richiede /ms_ext
L'attributo [local] è un'estensione Microsoft per DCE IDL. Per usare questo attributo in una funzione, non è possibile compilare con l'opzione /osf . L'opzione /osf esegue l'override delle opzioni predefinite del compilatore MIDL /ms_ext e /c_ext.
MIDL2052
gli attributi delle proprietà possono essere usati solo con le procedure
Utilizzo non corretto di un attributo [propget], [propput]o [propputref]. Verificare di aver scritto correttamente il nome della funzione della proprietà e che la proprietà e la funzione abbiano lo stesso nome.
MIDL2053
una procedura potrebbe non avere più di un attributo di proprietà
Al massimo, solo uno degli attributi [propget], [propput]o [propputref] può essere specificato per una funzione.
MIDL2054
la procedura ha una combinazione illegale di attributi dell'operazione
Alcuni attributi non possono essere usati in connessione con altri attributi. Controllare il riferimento al linguaggio MIDL per i requisiti e la sintassi esatti degli attributi usati in questa procedura.
MIDL2055
il campo derivato da una matrice conforme deve essere l'ultimo membro della struttura
La struttura contiene una matrice conforme che non è l'ultimo elemento della struttura. La matrice conforme deve essere visualizzata come ultimo elemento struttura.
MIDL2056
duplicato [case] etichetta
È stata specificata un'etichetta di caso duplicata. Viene visualizzata l'etichetta duplicata.
MIDL2057
no [default] case specificato per l'unione discriminata
Un'unione discriminata è stata specificata senza un caso predefinito.
MIDL2058
l'espressione di attributo non può essere risolta
Impossibile risolvere l'espressione associata all'attributo. Questo errore si verifica in genere quando non viene definita una variabile visualizzata nell'espressione. Ad esempio, l'errore può verificarsi quando la variabile s non è definita e viene utilizzata dall'attributo [size_is].
MIDL2059
l'espressione di attributo deve essere di tipo integrale, nessun supporto per espressioni a 64 bit
La variabile o l'espressione dell'attributo specificato devono essere un tipo integrale. Questo errore si verifica quando il tipo di espressione attributo non viene risolto in un intero.
MIDL2060
[byte_count] richiede /ms_ext
L'attributo [byte_count] è un'estensione Microsoft per DCE IDL. Per usare questo attributo non è possibile compilare con l'opzione /osf , che esegue l'override delle opzioni predefinite del compilatore MIDL /ms_ext e /c_ext.
MIDL2061
[byte_count] può essere applicato solo ai parametri di tipo puntatore
L'attributo [byte_count] può essere applicato solo ai parametri [out] e tutti i parametri [out] devono essere tipi di puntatore.
MIDL2062
[byte_count] non può essere specificato in un puntatore a una matrice o struttura conforme
L'attributo [byte_count] non può essere applicato a una matrice o a una struttura conforme.
MIDL2063
parametro che specifica il conteggio byte non è [in] solo o il parametro conteggio byte non è [out] solo
Il valore associato a [byte_count] deve essere trasmesso dal client al server; deve essere un parametro [in] . Il parametro [byte_count] non deve essere un parametro [in, out] .
MIDL2064
parametro che specifica il conteggio dei byte non è un tipo integrale
Il valore associato al conteggio dei byte deve essere il tipo integer int, small, short o long.
MIDL2065
[byte_count] non può essere specificato in un parametro con attributi di dimensione
L'attributo [byte_count] non può essere usato con altri attributi di dimensione, ad esempio [size_is] o [length_is].
MIDL2066
[case] espressione non costante
L'espressione specificata per l'etichetta maiuscola non è una costante.
MIDL2067
[case] espressione non è di tipo integrale
L'espressione specificata per l'etichetta maiuscola non è un tipo integer.
MIDL2068
specificando [context_handle] in un tipo diverso da void * richiede /ms_ext
Per la compatibilità DCE-RPC, l'handle di contesto deve essere un puntatore di tipo void *. Se si desidera che gli handle di contesto siano associati a tipi diversi da void *, non usare l'opzione del compilatore MIDL /osf, che esegue l'override dell'opzione predefinita del compilatore MIDL /ms_ext.
MIDL2069
non può specificare più di un parametro con ogni comm_status/fault_status
Una procedura può avere un solo parametro con l'attributo [comm_status] . Può avere al massimo un parametro con l'attributo [fault_status] .
MIDL2070
comm_status/fault_status parametro deve essere un parametro [out] solo puntatore
I tipi di codice di errore [comm_status] e [fault_status] vengono trasmessi dal server al client e pertanto devono essere specificati come parametro [out]. A causa dei vincoli nel linguaggio di programmazione C, tutti i parametri [out] devono essere puntatori.
MIDL2071
errore di sintassi dell'endpoint
La sintassi dell'endpoint non è corretta.
MIDL2072
attributo inapplicable
Impossibile applicare l'attributo specificato in questo costrutto. Ad esempio, l'attributo stringa si applica a matrici di caratteri o puntatori char e non può essere applicato a una struttura costituita da due numeri interi brevi :
typedef [string] struct moo 
{
    short x;
    short y;
};
MIDL2073
[allocato] richiede /ms_ext
L'attributo allocato rappresenta un'estensione Microsoft non definita come parte di DCE RPC. Per usare questo attributo, non è possibile compilare con l'opzione /osf , che esegue l'override dell'opzione predefinita del compilatore MIDL /ms_ext
MIDL2074
modalità [allocata] non valida
È stata specificata una modalità non valida per il costrutto di attributi [allocato]. Le quattro modalità valide sono single_node, all_nodes, on_null e sempre.
MIDL2075
gli attributi di lunghezza non possono essere applicati con l'attributo stringa
Quando viene usato l'attributo stringa, i file stub generati chiamano la funzione strlen per determinare la lunghezza della stringa. Non usare l'attributo length e l'attributo stringa per la stessa variabile.
MIDL2076
[last_is] e [length_is] non possono essere specificati contemporaneamente
Sia [last_is] che [length_is] sono stati specificati per la stessa matrice. Questi attributi sono correlati come segue: lunghezza = ultimo primo + 1. Poiché ogni valore può essere derivato dall'altro, non specificare entrambi.
MIDL2077
[max_is] e [size_is] non possono essere specificati contemporaneamente
Sia [ max_is] che [ size_is] sono stati specificati per la stessa matrice. Questi attributi sono correlati come segue: max = size + 1. Poiché ogni valore può essere derivato dall'altro, non specificare entrambi.
MIDL2078
nessun attributo [switch_is] specificato all'uso dell'unione
Non è stata specificata alcuna discriminante per l'unione. L'attributo [switch_is] indica la discriminante usata per selezionare tra i campi dell'unione.
MIDL2079
no [uuid] specificato
Non è stato specificato alcun UUID per l'interfaccia.
MIDL2080
[uuid] ignorato nell'interfaccia [locale]
L'uso dell'attributo [local] in un'interfaccia oggetto causa l'ignorare l'attributo [uuid] del compilatore MIDL. Non è possibile usare entrambi gli attributi in un'interfaccia RPC.
MIDL2081
mancata corrispondenza tra le espressioni di attributo di lunghezza e dimensione
Le espressioni di attributi di lunghezza e dimensione devono essere degli stessi tipi. Questo avviso, ad esempio, viene generato quando la variabile di attributo per l'espressione [size_is] è di tipo senza segno e la variabile di attributo per l'espressione [length_is] è di tipo long.
MIDL2082
L'attributo [stringa] deve essere specificato "byte", "char" o "wchar_t" matrice o puntatore
Non è possibile applicare un attributo stringa a un puntatore o a una matrice il cui tipo di base non è un byte, char o struct in cui i membri sono tutti i byte o il tipo char.
MIDL2083
mancata corrispondenza tra il tipo dell'espressione [switch_is] e il tipo di commutatore dell'unione
Se l'unione [switch_type] non è specificata, il tipo di commutatore è lo stesso tipo del campo [switch_is] .
MIDL2084
[transmit_as] non deve essere applicato a un tipo che deriva da un handle di contesto
Gli handle di contesto non possono essere trasmessi come altri tipi.
MIDL2085
[transmit_as] deve specificare un tipo trasmissibile
Il tipo [transmit_as] specificato deriva da un tipo che non può essere trasmesso da Microsoft RPC, ad esempio void, void *o int. Usare un tipo di base RPC definito; nel caso di int, aggiungere identificatori di dimensione come piccole, brevi o lunghe per qualificare l'int.
MIDL2086
tipo trasmesso per [transmit_as] e [represent_as] non deve essere un puntatore o derivare da un puntatore
Il tipo trasmesso non può essere un puntatore o derivare da un puntatore.
MIDL2087
tipo presentato per [transmit_as] e [represent_as] non deve derivare da una matrice conforme/variabile, il relativo equivalente puntatore o una struttura conforme/variabile
Il tipo a cui è stato applicato [transmit_as] non può derivare da una matrice o una struttura conforme (matrice o struttura la cui dimensione è determinata in fase di esecuzione).
MIDL2088
[uuid] formato non corretto
Il formato UUID non è conforme alla specifica. L'UUID deve essere una stringa costituita da cinque sequenze di cifre esadecimali di lunghezza 8, 4, 4, 4, 4 e 12 cifre. "12345678-1234-ABCD-EF01-28A49C28F17D" è un UUID valido. Usare la funzione UuidCreate o un'utilità per generare un UUID valido.
MIDL2089
uuid non è un numero esadecimale
L'UUID specificato per l'interfaccia contiene caratteri non validi in una rappresentazione del numero esadecimale. I caratteri da 0 a 9 e A tramite F sono validi in una rappresentazione esadecimale.
MIDL2090
i parametri facoltativi devono venire dopo i parametri obbligatori
Per una descrizione dell'ordinamento degli elenchi di parametri, vedere [facoltativo] nella guida di riferimento al linguaggio MIDL.
MIDL2091
[dllname] obbligatorio quando viene usata [voce]
Se si specifica un punto di ingresso in una DLL, è necessario specificare anche il nome della DLL usando l'attributo [dllname].
MIDL2092
[bindable] non è valido senza [propget], [propput]o [propputref]
L'attributo [associabile] è valido solo in una proprietà, pertanto è necessario specificare anche una delle funzioni di accesso alla proprietà o delle proprietà.
MIDL2093
le procedure con [propput] o [propputref] devono avere almeno un parametro
Una procedura [propput] o [ propputref] deve avere almeno un parametro [in] con la proprietà da impostare; una routine [propget] deve avere almeno un parametro [out, retval] per ricevere la proprietà o il riferimento.
MIDL2094
L'attributo [id] è obbligatorio
Questa funzione membro, a causa della sintassi dispinterface usata, richiede un DISPID, specificato usando l'attributo [ id]. Quando si specifica un dispinterface usando proprietà e metodi, è necessario specificare un DISPID per ogni proprietà e metodo.
MIDL2095
il nome dell'interfaccia specificato nell'ACF non corrisponde a quello specificato nel file IDL
Nella modalità del compilatore corrente il nome che segue la parola chiave dell'interfaccia in ACF deve essere uguale al nome che segue la parola chiave dell'interfaccia nel file IDL. I nomi dell'interfaccia nei file IDL e ACF possono essere diversi quando si compila con l'opzione del compilatore MIDL /acf.
MIDL2096
attributo duplicato
Sono stati specificati attributi duplicati o in conflitto. Questo errore si verifica spesso quando due attributi si escludono a vicenda. Ad esempio, gli attributi [codice] e [nocode] non possono essere usati contemporaneamente.
MIDL2097
parametro con [comm_status] o [fault_status] attributo deve essere un puntatore al tipo error_status_t
Quando [fault_status] o [comm_status] viene usato come attributo di parametro, il parametro deve essere un parametro [out] di tipo error_status_t. Se si verifica un errore del server, il parametro viene impostato sul codice di errore. Al termine della chiamata remota, la procedura imposta il valore.
MIDL2098
non è possibile specificare una procedura [local] nel file ACF
Una procedura locale è stata specificata nell'ACF. La procedura locale può essere specificata solo nel file IDL.
MIDL2099
il tipo specificato non è definito come handle
Il tipo specificato nell'attributo [implicit_handle] non è definito come tipo di handle. Modificare la definizione del tipo o il nome del tipo specificato dall'attributo.
MIDL2100
procedura non definita
Un attributo è stato applicato a una routine nel servizio ACF e tale procedura non è definita nel file IDL.
MIDL2101
questo parametro non esiste nel file IDL
Un parametro specificato nell'ACF non esiste nella definizione nel file IDL. Tutti i parametri, le funzioni e le definizioni di tipo visualizzati nell'ACF devono corrispondere a parametri, funzioni e tipi definiti in precedenza nel file IDL.
MIDL2102
questo costrutto di limiti di matrice non è supportato
MIDL supporta attualmente l'espressione dei limiti superiori e inferiori di una matrice nella maschera Array[Lower .. Superiore] solo quando la costante che specifica il limite inferiore della matrice si risolve con il valore zero.
MIDL2103
la specifica associata a matrice non è valida
La specifica utente dei limiti di matrice per la matrice a dimensioni fisse è illegale. Ad esempio:
typedef short Array[-1]
MIDL2104
puntatore a una matrice conforme o a una matrice che contiene una matrice conforme non è supportata
Utilizzo della matrice conforme non valido. Per le regole che regolano matrici conformi, vedere Matrici e RPC.
MIDL2105
pointee/array non deriva alcuna dimensione
È stata specificata una matrice conforme senza alcuna specifica di dimensione. È possibile specificare le dimensioni con l'attributo [max_is] o [size_is].
MIDL2106
solo matrici fisse e SAFEARRAY sono legali in una libreria di tipi
È stato usato un tipo di matrice all'interno di un'istruzione di libreria che non può essere usata in una libreria di tipi.
MIDL2107
SAFEARRAYs è legale solo all'interno di un blocco di libreria
Il compilatore MIDL non riconosce SAFEARRAY come tipo di dati valido, ad eccezione della generazione di una libreria di tipi.
MIDL2108
costante carattere non formato male
Il carattere di fine riga non è consentito nelle costanti dei caratteri.
MIDL2109
fine del file trovato nel commento
Il carattere end-of-file è stato rilevato in un commento.
MIDL2110
fine del file trovato nella stringa
Il carattere end-of-file è stato rilevato in una stringa.
MIDL2111
la lunghezza dell'identificatore supera 31 caratteri
Gli identificatori sono limitati a 31 caratteri alfanumerici. I nomi degli identificatori più lunghi di 31 caratteri vengono troncati.
MIDL2112
fine della riga trovata nella stringa
Il carattere end-of-line è stato rilevato nella stringa. Verificare che sia stato incluso il carattere di virgolette doppie che termina la stringa.
MIDL2113
la costante stringa supera il limite di 255 caratteri
La stringa ha superato la lunghezza massima consentita di 255 caratteri.
MIDL2114
l'identificatore supera il limite di 255 caratteri ed è stato troncato
L'identificatore ha superato la lunghezza massima consentita di 255 caratteri. I caratteri in eccesso nell'identificatore vengono troncati.
MIDL2115
costante troppo grande
La costante è troppo grande da rappresentare internamente.
MIDL2116
errore di analisi numerica
Impossibile analizzare l'identificatore numerico del compilatore.
MIDL2117
errore nell'apertura del file
Il sistema operativo ha segnalato un errore durante il tentativo di aprire un file di output. Questo errore può essere causato da un nome troppo lungo per il file system o da un nome file duplicato.
MIDL2118
associazione di errori alla funzione
MIDL2119
errore durante l'inizializzazione di OLE
MIDL2120
errore durante il caricamento della libreria
MIDL2121
[out] Solo parametro non deve derivare da un puntatore/matrice di livello superiore [univoco] o [ptr]
Un puntatore univoco non può essere un parametro [out]-only. Per definizione, un puntatore univoco può cambiare da NULL a non NULL. Nessuna informazione sul parametro [out]-only viene passata dal client al server.
MIDL2122
l'attributo non è applicabile a questa unione non rpcable
Solo gli attributi [switch_is] e [switch_type] si applicano a un'unione trasmessa come parte di una chiamata di procedura remota.
MIDL2123
espressione usata per un attributo di dimensione non deve derivare da un parametro [out]-only
Il valore di un parametro [out]-only non viene trasmesso al server e non può essere usato per determinare la lunghezza o le dimensioni del parametro [in] .
MIDL2124
espressione usata per un attributo di lunghezza per un parametro [in] non può derivare da un parametro [out]-only
Il valore di un parametro [out]-only non viene trasmesso al server e non può essere usato per determinare la lunghezza o le dimensioni del parametro [in] .
MIDL2125
utilizzo delle esigenze "int" /c_ext
MIDL è un linguaggio fortemente tipizzato. Tutti i parametri trasmessi tramite la rete devono essere derivati da uno dei tipi di base MIDL. Il tipo int non viene definito come parte di MIDL. I dati trasmessi devono includere un identificatore di dimensioni: piccolo, breve o lungo. I dati non trasmessi tramite la rete possono essere inclusi in un'interfaccia; usare l'opzione /c_ext .
MIDL2126
Il campo struct/union non deve essere "void"
I campi in una struttura o un'unione devono essere dichiarati come di un tipo di base specifico supportato da MIDL o da un tipo derivato dai tipi di base. I tipi Void non sono consentiti nelle operazioni remote.
MIDL2127
l'elemento array non deve essere void
Non è possibile annullare un elemento matrice.
MIDL2128
uso di qualificatori di tipo e/o modificatori necessari /c_ext
I modificatori di tipo, ad esempio _cdecl e _far, possono essere compilati solo se si specifica l'opzione /c_ext.
MIDL2129
Il campo struct/union non deve derivare da una funzione
I campi di una struttura o di un'unione devono essere tipi o tipi di base MIDL derivati da questi tipi di base. Le funzioni non sono legali nelle strutture o nei campi dell'unione.
MIDL2130
L'elemento array non deve essere una funzione
Un elemento matrice non può essere una funzione.
MIDL2131
parametro non deve essere una funzione
Il parametro di una routine remota deve essere una variabile di un tipo specificato. Una funzione non può essere un parametro per la procedura remota.
MIDL2132
struct/union con campi bit richiede /c_ext
È necessario specificare l'opzione del compilatore MIDL /c_ext per consentire campi bit nelle strutture che non vengono trasmessi in una chiamata di routine remota.
MIDL2133
specifica del campo bit su un tipo altro che "int" è un'estensione non compatibile con ANSI
La specifica del linguaggio di programmazione ANSI C non consente l'applicazione dei campi bit ai tipi non insegerbili.
MIDL2134
La specifica del campo bit può essere applicata solo ai tipi semplici e integrali
La specifica del linguaggio di programmazione ANSI C non consente l'applicazione dei campi bit ai tipi non insegerbili.
MIDL2135
Il campo struct/union non deve derivare da handle_t o da un handle di contesto
Gli handle di contesto non possono essere trasmessi come parte di un'altra struttura. Devono essere trasmessi come handle di contesto.
MIDL2136
l'elemento array non deve derivare da handle_t o da un handle di contesto
Gli handle di contesto non possono essere trasmessi come parte di una matrice.
MIDL2137
questa specifica delle esigenze dell'unione /c_ext
Un'unione visualizzata nella definizione dell'interfaccia deve essere associata alla discriminante o dichiarata come locale. I dati non trasmessi tramite la rete possono essere dichiarati in modo implicito come locale quando si usa l'opzione /c_ext , ovvero l'impostazione predefinita MIDL. Non è possibile compilare questo IDL con l'opzione /osf .
MIDL2138
il parametro derivato da un "int" deve avere un identificatore di dimensioni "small", "short" o "long" con "int"
Il tipo int è solo un tipo MIDL valido su piattaforme a 32 bit, nei sistemi a 16 bit int deve essere accompagnato da una specifica delle dimensioni. Usare uno degli identificatori di dimensioni piccoli, brevi o lunghi.
MIDL2139
tipo del parametro non può derivare da void o void*
MIDL è un linguaggio fortemente tipizzato. Tutti i parametri trasmessi tramite la rete devono essere derivati da uno dei tipi di base MIDL. MIDL non supporta void come tipo di base. È necessario modificare la dichiarazione in un tipo MIDL valido.
MIDL2140
parametro derivato da uno struct/unione contenente campi bit non è supportato
I campi bit non sono definiti come tipo di dati validi da RPC DCE.
MIDL2141
uso di un parametro derivato da un tipo contenente tipi-modificatori/tipi-qualificatori richiede /c_ext
L'uso delle parole chiave, ad esempio lontano, vicino, const e volatile nel file IDL è un'estensione Microsoft a DCE RPC. Queste parole chiave non sono disponibili quando si compila con l'opzione /osf , che disattiva l'opzione di estensione /c_ext predefinita.
MIDL2142
parametro non deve derivare da un puntatore a una funzione
Le librerie di runtime RPC trasmettono un puntatore e i relativi dati associati tra client e server. I puntatori alle funzioni non possono essere trasmessi come parametri perché la funzione non può essere trasmessa sulla rete.
MIDL2143
parametro non deve derivare da un'unione non con supporto per i computer
L'unione deve essere associata a una discriminazione. Usare gli attributi [switch_is] e [switch_type].
MIDL2144
il tipo restituito deriva da un "int". È necessario usare gli identificatori di dimensione con "int"
Nei sistemi a 16 bit il tipo int non è un tipo MIDL valido, a meno che non sia accompagnato da una specifica di dimensioni. Usare uno degli identificatori di dimensioni piccoli, brevi o lunghi.
MIDL2145
il tipo restituito non deve derivare da un puntatore void
MIDL è un linguaggio fortemente tipizzato. Tutti i parametri trasmessi tramite la rete devono essere derivati da uno dei tipi di base MIDL. I tipi Void non vengono definiti come parte di MIDL. È necessario modificare la dichiarazione in un tipo MIDL valido.
MIDL2146
il tipo restituito non deve derivare da una struttura/unione contenente campi bit
I campi bit non sono definiti come tipo di dati validi da RPC DCE.
MIDL2147
il tipo restituito non deve derivare da un'unione con capacità nonrpc
L'unione deve essere associata a una discriminazione. Usare gli attributi [switch_is] e [switch_type].
MIDL2148
il tipo restituito non deve derivare da un puntatore a una funzione
Le librerie di runtime RPC trasmettono un puntatore e i relativi dati associati tra client e server. I puntatori alle funzioni non possono essere trasmessi come parametri perché RPC non definisce un metodo per trasmettere la funzione associata sulla rete.
MIDL2149
gli inizializzatori composti non sono supportati
DCE RPC supporta solo l'inizializzazione semplice. Impossibile inizializzare la struttura o la matrice nel file IDL.
MIDL2150
Gli attributi ACF nel file IDL richiedono l'opzione /app_config
Un'estensione Microsoft consente di specificare gli attributi ACF nel file IDL. Usare l'opzione /app_config per attivare questa estensione.
MIDL2151
Il commento a riga singola richiede /ms_ext o /c_ext
I commenti a riga singola che usano due caratteri di barra (//) rappresentano un'estensione Microsoft per DCE RPC. Non è possibile usare commenti a riga singola se si esegue la compilazione con l'opzione /osf .
MIDL2152
[versione] il formato non è corretto
Il numero di versione dell'interfaccia nell'intestazione dell'interfaccia deve essere specificato nel formato principale. minore, dove ogni numero può variare da 0 a 65535.
MIDL2153
Esigenze "firmate" /ms_ext o /c_ext
L'uso della parola chiave firmata è un'estensione Microsoft per RPC DCE. Non è possibile usare l'opzione /osf se si vuole usare questa funzionalità.
MIDL2154
mancata corrispondenza nel tipo di assegnazione
Il tipo della variabile non corrisponde al tipo del valore assegnato alla variabile.
MIDL2155
la dichiarazione deve essere del modulo: const <type> \<dichiaraator> = <inizializzazione dell'espressione>
La dichiarazione non è compatibile con la sintassi RPC DCE. Usare il commutatore /ms_ext o /c_ext modalità del compilatore MIDL.
MIDL2156
la dichiarazione deve avere "const"
Le dichiarazioni nel file IDL devono essere espressioni costanti che usano la parola chiave const, ad esempio:
const short x = 2;
MIDL2157
Lo struct/union/enum non deve essere definito in una specifica del tipo di parametro
La struttura, l'unione o il tipo enumerato devono essere indicati in modo esplicito all'esterno del prototipo di funzione.
MIDL2158
L'attributo [allocato] deve essere applicato solo nei tipi di puntatore non void
L'attributo [allocato] è progettato per strutture di dati basate su puntatori complessi. Quando viene specificato l'attributo [allocato], il file stub attraversa la struttura dei dati per calcolare le dimensioni totali di tutti gli oggetti accessibili dal puntatore e da tutti gli altri puntatori nella struttura dei dati. Modificare il tipo in un tipo di puntatore non privo o rimuovere l'attributo [allocato] e usare un altro metodo per determinare le dimensioni dell'allocazione, ad esempio l'operatore sizeof .
MIDL2159
la matrice o il costrutto del puntatore equivalente non possono derivare da un'unione non incapsulata
Ogni unione deve essere associata a una discriminazione. Le matrici di unioni non sono consentite perché non forniscono la discriminazione associata. Le matrici di strutture in cui la struttura raggruppa l'unione e la relativa discriminante sono consentite perché gli stub possono usare il discriminante per determinare le dimensioni di ogni unione.
MIDL2160
il campo non deve derivare da un tipo di error_status_t
Il tipo error_status_t può essere usato solo come parametro o come tipo restituito. Non può essere incorporato nel campo di una struttura o di un'unione.
MIDL2161
l'unione ha almeno un braccio senza un'etichetta maiuscola
La dichiarazione di unione non corrisponde alla sintassi MIDL necessaria per l'unione. Ogni braccio di unione richiede un'etichetta maiuscola o un'etichetta predefinita che seleziona tale braccio di unione.
MIDL2162
parametro o valore restituito non deve derivare da un tipo con [ignora] applicato a esso
L'attributo [ignore] è un attributo di campo che può essere applicato solo ai campi, ad esempio campi di strutture e matrici. L'attributo [ignore] indica che lo stub non deve dereferenziare il puntatore durante la trasmissione e non è consentito quando è in conflitto con altri attributi che devono essere dereferenziati, ad esempio parametri [out] e valori restituiti dalla funzione.
MIDL2163
puntatore ha già un attributo puntatore applicato a esso
Solo uno degli attributi del puntatore, [ref], [unique]o [ptr], può essere applicato a un singolo puntatore.
MIDL2164
field/parameter non deve derivare da una struttura ricorsiva tramite un puntatore di riferimento
Per definizione, un puntatore di riferimento non può essere impostato su NULL. Una struttura di dati ricorsiva definita con un puntatore di riferimento non dispone di elementi NULL e per convenzione non è terminata. Usare un attributo puntatore [univoco] per consentire alla struttura di dati di specificare un elemento NULL o ridefinire la struttura dei dati come struttura dati non ricorsiva.
MIDL2165
uso del campo derivato da un puntatore void richiede /c_ext
Il tipo void * e altri tipi e qualificatori di tipo non supportati da DCE IDL sono consentiti nel file IDL solo quando si usano le impostazioni predefinite del compilatore MIDL. L'uso dell'opzione /osf esegue l'override di questa impostazione predefinita. Se è necessario compilare in modalità di compatibilità osf, sarà necessario ridefinire il tipo di puntatore.
MIDL2166
uso di questo attributo richiede /ms_ext
Questa funzionalità del linguaggio è un'estensione Microsoft per DCE IDL. Non è possibile usare questa funzionalità se si esegue la compilazione in modalità osf-compatibility (/osf ).
MIDL2167
questo attributo è consentito solo con le nuove librerie di tipi di formato
Per usare questo attributo, è necessaria la versione di Oleaut32.dll fornita con Windows 2000 o versione successiva.
MIDL2168
utilizzo di wchar_t esigenze /ms_ext o /c_ext
Il tipo di caratteri wide rappresenta un'estensione per DCE IDL. Il compilatore MIDL non accetta il tipo di carattere wide quando si specifica l'opzione /osf .
MIDL2169
i campi senza nome richiedono /ms_ext o /c_ext
DCE IDL non supporta l'uso di strutture o unioni non denominate incorporate in altre strutture o unioni. In DCE IDL tutti i campi incorporati devono essere denominati. Il compilatore MIDL non consente l'uso quando si specifica l'opzione /osf .
MIDL2170
i campi senza nome possono derivare solo da tipi di struct/union
L'estensione Microsoft all'IDL DCE che supporta i campi senza nome si applica solo alle strutture e alle unioni. È necessario assegnare un nome al campo o ridefinire il campo per rispettare questa restrizione.
MIDL2171
campo di un'unione non può derivare da una matrice conforme/variabile o dal relativo equivalente puntatore
La matrice conforme non può essere visualizzata da sola nell'unione, ma deve essere accompagnata dal valore che specifica le dimensioni della matrice. Anziché usare la matrice come braccio di unione, usare una struttura costituita dalla matrice conforme e dall'identificatore che specifica le relative dimensioni.
MIDL2172
nessun attributo [pointer_default] specificato, presupponendo [ptr] per tutti i puntatori non specificati nell'interfaccia
L'implementazione IDL DCE specifica che tutti i puntatori in ogni file IDL devono essere associati agli attributi del puntatore. Quando un attributo puntatore esplicito non viene assegnato al tipo di parametro o puntatore e non viene specificato alcun attributo [pointer_default] nel file IDL, il puntatore completo ptr è associato al puntatore. È possibile modificare gli attributi del puntatore usando gli attributi del puntatore esplicito, specificando un attributo [pointer_default] oppure specificando il commutatore /ms_ext per modificare il valore predefinito per i puntatori non specificati in [univoco].
MIDL2173
l'inizializzazione dell'espressione deve essere risolta in un'espressione costante
Se un'espressione viene usata come inizializzatore, l'espressione deve essere un'espressione costante. Questa operazione è vera in tutte le modalità del compilatore MIDL. L'espressione deve essere risolvibile in fase di compilazione. Specificare una costante letterale o un'espressione che si risolve in una costante, anziché una variabile.
MIDL2174
l'espressione di attributo deve essere di tipo integer, char, booleano o enumerazione
Il tipo specificato non viene risolto in un tipo di commutatore valido. Usare un tipo integer, carattere, byte, booleano o enumerazione o un tipo derivato da uno di questi tipi.
MIDL2175
costante illegale
La costante specificata non è compreso nell'intervallo valido per il tipo specificato.
MIDL2176
attributo non implementato; Ignorato
L'attributo specificato non viene implementato in questa versione di Microsoft RPC. Il compilatore MIDL continua a elaborare il file IDL come se l'attributo non fosse presente.
MIDL2177
il tipo restituito non deve derivare da un puntatore [ref]
I valori restituiti dalla funzione definiti per essere tipi di puntatore devono essere specificati come [univoci] o puntatori completi . Non è possibile usare puntatori di riferimento.
MIDL2178
l'espressione di attributo deve essere un nome variabile o un'espressione di dereferenza puntatore in questa modalità. È necessario specificare l'opzione /ms_ext
Il compilatore IDL DCE richiede che le dimensioni associate all'attributo [size_is] vengano specificate da una variabile o una variabile puntatore. Se si vuole sfruttare l'estensione Microsoft che consente di definire l'attributo [size_is] da un'espressione costante, non è possibile usare l'opzione del compilatore /osf .
MIDL2179
parametro non deve derivare da un'unione ricorsiva non incapsulata
Un'unione deve includere una discriminazione, quindi un'unione non può avere un'altra unione come elemento. Un'unione può essere incorporata in un'altra unione solo quando fa parte di una struttura che include la discriminante.
MIDL2180
Il parametro binding-handle non può essere [out] solo
Il parametro handle identificato dal compilatore MIDL come handle di associazione per questa operazione deve essere un parametro [in]. [out]-only parameters are undefined on the client stub, and the binding handle must be defined on the client.
MIDL2181
puntatore a un handle non può essere [univoco] o [ptr]
Non è possibile utilizzare gli attributi univoci e completi del puntatore per un puntatore a un handle. Questi attributi consentono il valore NULL e l'handle di associazione non può essere NULL. Usare l'attributo [ref] per derivare il parametro binding-handle dai puntatori di riferimento.
MIDL2182
parametro che non è un handle di associazione non deve derivare da handle_t
Il tipo di handle primitivo handle_t non è un tipo di dati valido trasmesso in rete. Modificare il tipo di parametro in un tipo diverso da handle_t o rimuovere il parametro.
MIDL2183
fine imprevista del file trovato
Il compilatore MIDL ha trovato la fine del file prima che fosse in grado di risolvere correttamente tutti gli elementi sintattici del file. Verificare che il carattere di terminazione con parentesi graffa (}) sia presente alla fine del file oppure controllare la sintassi.
MIDL2184
al tipo derivato da handle_t non deve essere applicato [transmit_as]
Il tipo di handle primitivo handle_t non viene trasmesso in rete.
MIDL2185
[context_handle] non deve essere applicato a un tipo con [handle] applicato
Gli attributi [context_handle] e [handle] non possono essere applicati allo stesso tipo.
MIDL2186
[handle] non deve essere specificato in un tipo derivato da void o void *
Un tipo specificato con l'attributo [handle] può essere trasmesso in rete, ma il tipo void* non è un tipo trasmissibile. Il tipo handle deve essere risolto in un tipo che deriva dai tipi di base trasmissibili.
MIDL2187
il parametro deve avere [in], [out] o [in,out] in questa modalità. È necessario specificare /ms_ext o /c_ext
Il compilatore IDL DCE richiede che tutti i parametri abbiano parametri direzionali espliciti. Per usare le estensioni Microsoft per DCE IDL, non è possibile usare l'opzione /osf , che esegue l'override di /ms_ext e /c_ext.
MIDL2188
il tipo trasmesso non può derivare da "void" per [transmit_as], [represent_as], [wire_marshal], [user_marshal]
L'attributo [transmit_as] si applica solo ai tipi puntatore. Usare il tipo void* al posto di void.
MIDL2189
È necessario specificare "void" nella prima specifica del parametro e solo
La parola chiave void viene visualizzata erroneamente con altri parametri di funzione. Per specificare una funzione senza parametri, la parola chiave void deve essere l'unico elemento dell'elenco di parametri, come nell'esempio seguente:
void Moo(void)
MIDL2190
[switch_is] deve essere specificato solo su un tipo derivato da un'unione non incapsulata
La parola chiave [switch_is] viene applicata in modo non corretto. Può essere usato solo con tipi di unione non incapsulati.
MIDL2191
le strutture stringable non vengono implementate in questa versione
DCE IDL consente all'attributo [string] di applicare a una struttura i cui elementi sono costituiti solo da caratteri, byte o tipi che si risolvono in caratteri o byte. Questa funzionalità non è supportata in Microsoft RPC. L'attributo [string] non può essere applicato alla struttura nel suo complesso. Tuttavia, può essere applicato a ogni singola matrice.
MIDL2192
il tipo switch può essere solo integrale, char, booleano o enumerazione
Il tipo specificato non viene risolto in un tipo di opzione valido. Usare un tipo integer, carattere, byte, booleano, enumerazione o un tipo derivato da uno di questi tipi.
MIDL2193
[handle] non deve essere specificato in un tipo derivato da handle_t
È necessario definire un tipo di handle usando uno e uno solo dei tipi di handle o attributi. Usare il tipo primitivo handle_t o l'attributo [handle], ma non entrambi. Il tipo di handle definito dall'utente deve essere trasmissibile, ma il tipo di handle_t non viene trasmesso nella rete.
MIDL2194
il parametro derivato da handle_t non deve essere un parametro [out]
Un handle del tipo primitivo handle_t è significativo solo sul lato dell'applicazione in cui è definito. Il tipo handle_t non viene trasmesso in rete.
MIDL2195
l'espressione dell'attributo deriva da [unique] o [ptr] dereferenziazione del puntatore
Anche se gli attributi [unique] e full pointer consentono ai puntatori di avere valori NULL , l'espressione che definisce l'attributo size o length non deve mai avere un valore NULL . Quando si usano puntatori, MIDL vincola le espressioni ai puntatori [ref].
MIDL2196
"cpp_quote" richiede /ms_ext
L'attributo cpp_quote è un'estensione Microsoft per DCE IDL. Non usare l'opzione /osf del compilatore MIDL, che esegue l'override di /ms_ext.
MIDL2197
uuid tra virgolette richiede /ms_ext
La possibilità di specificare un valore UUID tra virgolette è un'estensione Microsoft per DCE IDL. Non usare l'opzione /osf del compilatore MIDL, che esegue l'override di /ms_ext.
MIDL2198
il tipo restituito non può derivare da un'unione non incapsulata
L'unione non incapsulata non può essere utilizzata come tipo restituito di funzione. Per restituire il tipo di unione, specificare il tipo di unione come parametro [out] o [in, out].
MIDL2199
il tipo restituito non può derivare da una struttura conforme
Le dimensioni del tipo restituito devono essere costanti. Non è possibile specificare come tipo restituito una struttura che contiene una matrice conforme anche quando la struttura include anche il relativo identificatore di dimensioni. Per restituire la struttura conforme, specificare la struttura come parametro [out] o [in, out].
MIDL2200
[transmit_as] non deve essere applicato a un tipo derivato da un handle generico
In questa versione gli attributi [handle] e [transmit_as] non possono essere combinati nello stesso tipo.
MIDL2201
[handle] non deve essere applicato a un tipo a cui è applicato [transmit_as]
In questa versione gli attributi [handle] e [transmit_as] non possono essere combinati nello stesso tipo.
MIDL2202
il tipo specificato per la dichiarazione const non è valido
Le dichiarazioni costanti sono limitate ai tipi integer, character, wide-character, string e Boolean.
MIDL2203
L'operando all'operatore sizeof non è supportato
Il compilatore MIDL supporta l'operazione sizeof solo per i tipi semplici. L'operando specificato non restituisce un tipo integer.
MIDL2204
questo nome è già usato come nome dell'identificatore const
L'identificatore è stato usato in precedenza per identificare una costante in una dichiarazione const . Modificare il nome di uno degli identificatori in modo che gli identificatori siano univoci.
MIDL2205
ridefinizione incoerente di tipo error_status_t
Il tipo error_status_t deve essere risolto nel tipo long senza segno. Non è possibile usare altre definizioni di tipo.
MIDL2206
[case] valore non compreso nell'intervallo di tipo switch
Il valore associato al case dell'istruzione switch non è compreso nell'intervallo per il tipo di opzione specificato. Ad esempio, questo errore si verifica quando viene usato un valore long integer nell'istruzione case per un tipo integer breve.
MIDL2207
parametro derivato da wchar_t richiede /ms_ext
Il tipo di caratteri wide wchar_t è un'estensione Microsoft per DCE IDL. Non usare l'opzione /osf del compilatore MIDL, che esegue l'override di /ms_ext
MIDL2208
questa interfaccia ha solo callback
I callback sono validi solo nel contesto di una chiamata di procedura remota. L'interfaccia deve includere almeno un prototipo di funzione per una chiamata di procedura remota che non include l'attributo [callback].
MIDL2209
attributo con ridondanza; Ignorato
L'attributo specificato è stato applicato più volte. Vengono ignorate più istanze dello stesso attributo.
MIDL2210
tipo di handle di contesto usato per un handle implicito
Un tipo definito usando l'attributo [context_handle] è stato specificato come tipo di handle in un attributo [ implicit_handle]. Gli attributi non possono essere combinati in questo modo.
MIDL2211
opzioni in conflitto specificate per [allocate]
Le opzioni specificate per l'attributo ACF [allocate] rappresentano direttive in conflitto. Ad esempio, specificare l'opzione all_nodes o l'opzione single_node, ma non entrambe.
MIDL2212
errore durante la scrittura nel file
Errore durante la scrittura nel file. Questa condizione può essere causata da errori relativi allo spazio su disco, agli handle di file, alle restrizioni di accesso ai file e agli errori hardware.
MIDL2213
nessun tipo switch trovato in corrispondenza della definizione dell'unione, usando il tipo [switch_is]
La definizione di unione non include un attributo [switch_type] esplicito. Il tipo della variabile specificata dall'attributo [switch_is] viene usato come tipo di opzione.
MIDL2214
controllo semantico incompleto a causa di errori precedenti
Il compilatore MIDL esegue due passaggi sui file di input per risolvere eventuali dichiarazioni di inoltro. A causa di errori riscontrati durante il primo passaggio, non è stato eseguito il controllo del secondo passaggio. Gli errori non segnalati relativi alle dichiarazioni di inoltro potrebbero essere ancora presenti nel file.
MIDL2215
Il parametro handle o il tipo restituito non è supportato in una routine [callback]
Una routine [callback] si verifica nel contesto di una chiamata da un client al server e usa lo stesso handle di associazione della chiamata originale. I parametri di handle di associazione espliciti o i tipi restituiti non sono consentiti nelle funzioni di callback.
MIDL2216
[ptr] non supporta l'aliasing in questa versione
Un alias si verifica quando i dati sono accessibili tramite più di un puntatore o un nome di variabile. Rimuovere l'alias. Per altre informazioni, vedere Puntatori univoci.
MIDL2217
parametro già definito come handle di contesto
Il parametro è stato definito in precedenza come handle di contesto.
MIDL2218
[context_handle] non deve derivare da handle_t
Le tre caratteristiche di handle: il tipo handle_t, l'attributo [handle] e l'attributo [context_handle], si escludono a vicenda. È possibile applicare una sola caratteristica a un tipo o a un parametro alla volta.
MIDL2219
le dimensioni della matrice superano i 65536 byte
In alcune piattaforme Microsoft, le dimensioni massime dei dati trasmissibili sono pari a 64 KB. Riprogettare l'applicazione in modo che tutti i dati trasmessi si adattino alle dimensioni massime trasmissibili.
MIDL2220
la dimensione della struttura supera i 65536 byte
In alcune piattaforme Microsoft, le dimensioni massime dei dati trasmissibili sono pari a 64 KB. Riprogettare l'applicazione in modo che tutti i dati trasmessi si adattino alle dimensioni massime trasmissibili.
MIDL2221
il campo di un'unione non incapsulata non può essere un'altra unione non incapsulata
Le unioni trasmesse come parte di una chiamata di procedura remota richiedono un elemento dati associato, la discriminante, che seleziona il braccio di unione. Le unioni annidate in altre unioni non offrono una discriminante; di conseguenza, non possono essere trasmessi in questo formato. Creare una struttura costituita dall'unione e dalla relativa discriminante.
MIDL2222
attributi puntatore applicati a una matrice incorporata; Ignorato
Un attributo puntatore può essere applicato a una matrice solo quando la matrice è un parametro di primo livello. Altri attributi del puntatore applicati alle matrici incorporate in altre strutture di dati vengono ignorati.
MIDL2223
[allocate] non è valido nel tipo trasmesso o presentato per [transmit_as], [represent_as], [wire_marshal]o [user_marshal]
Gli attributi [transmit_as] e [allocate] non possono essere applicati entrambi allo stesso tipo. L'attributo [transmit_as] distingue tra i tipi presentati e trasmessi, mentre l'attributo [allocate] presuppone che il tipo presentato sia uguale al tipo trasmesso.
MIDL2224
[switch_type] deve essere specificato in questa modalità di importazione
MIDL2225
[implicit_handle] tipo non definito; presupponendo un handle generico
Il tipo di handle specificato in ACF non è definito nel file IDL. Il compilatore MIDL presuppone che il tipo handle si risolva nel tipo di handle primitivo handle_t. Aggiungere l'attributo [handle] alla definizione del tipo se si vuole che l'handle si comporti come un handle definito dall'utente o generico.
MIDL2226
L'elemento matrice non deve derivare da error_status_t
In questa versione di Microsoft RPC il tipo error_status_t può essere visualizzato solo come parametro o tipo restituito. Non può essere visualizzato nelle matrici.
MIDL2227
[allocate] illegale in un tipo derivato da un handle primitivo/generico/contesto
Per impostazione predefinita, l'attributo ACF [allocate] non può essere applicato ai tipi handle.
MIDL2228
il tipo trasmesso o presentato non deve derivare da error_status_t
In questa versione di Microsoft RPC il tipo error_status_t non può essere usato con l'attributo [transmit_as].
MIDL2229
discriminante di un'unione non deve derivare da un campo con [ignore] applicato
Un'unione utilizzata in una chiamata di procedura remota deve essere associata a un altro elemento dati, denominato discriminante, che seleziona il braccio di unione. Il discriminante deve essere trasmesso. Impossibile applicare l'attributo [ignore] all'unione discriminante.
MIDL2230
[nocode] ignorato per il lato server poiché "/server none" non specificato
Alcuni compilatori IDL DCE generano un errore quando viene applicato l'attributo [nocode] a una routine in un'interfaccia per cui vengono generati i file stub del server. Poiché il server deve supportare tutte le operazioni, [nocode] non deve essere applicato a una routine in questa modalità oppure è necessario usare l'opzione del compilatore MIDL /server none per specificare in modo esplicito che non devono essere generate routine server.
MIDL2231
nessuna procedura remota specificata nell'interfaccia non locale; Non verranno generati stub client/server
L'interfaccia fornita non dispone di procedure remote, quindi verranno generati solo i file di intestazione.
MIDL2232
Troppi casi predefiniti specificati per l'unione incapsulata
Un'unione incapsulata può avere un solo valore predefinito: arm.
MIDL2233
troppe interfacce predefinite specificate per la coclasse
Una coclasse può avere al massimo due membri [default], uno per rappresentare l'interfaccia in uscita (origine) o dispinterface e una per rappresentare l'interfaccia in ingresso (sink) o dispinterface.
MIDL2234
gli elementi con [defaultvtable] devono avere anche [source]
L'interfaccia defaultvtable crea una seconda interfaccia di origine per un oggetto, una che consente ai sink di ricevere eventi tramite la tabella V.
MIDL2235
specifica dell'unione senza campi non è illegale
Le unioni devono avere almeno un campo.
MIDL2236
valore non compreso nell'intervallo
Il valore del case specificato non è compreso nell'intervallo del tipo di commutatore.
MIDL2237
[context_handle] deve essere applicato a un tipo di puntatore
Gli handle di contesto devono essere sempre tipi di puntatore. DCE specifica che tutti gli handle di contesto devono essere digitati come void *.
MIDL2238
il tipo restituito non deve derivare da handle_t
non è possibile restituire handle_t.
MIDL2239
[handle] non deve essere applicato a un tipo derivato da un handle di contesto
Un tipo non può essere sia un handle di contesto che un handle generico.
MIDL2240
il campo derivato da un oggetto "int" deve avere un identificatore di dimensioni "small", "short" o "long" con "int"
Il tipo int non è trasmissibile nei sistemi a 16 bit, poiché le dimensioni di int possono essere diverse tra i computer.
MIDL2241
il campo non deve derivare da un void o void *
void e void * non possono essere usati come tipi di parametri per le procedure remote.
MIDL2242
il campo non deve derivare da una struttura contenente campi bit
Le strutture contenenti campi bit non possono essere usate come parametri o tipi restituiti per le procedure remote.
MIDL2243
il campo non deve derivare da un'unione non rpcable
Un'unione deve essere specificata come unione non incapsulata o unione incapsulata per essere trasmesso. I sindacati C ordinari non hanno bisogno della discriminazione necessaria per trasmettere l'unione attraverso la rete.
MIDL2244
il campo non deve derivare da un puntatore a una funzione
I puntatori alle funzioni non possono essere trasmessi alle procedure remote. I puntatori alle funzioni puntano al codice di funzione e non è possibile trasmettere codice di funzione all'interno della rete usando RPC.
MIDL2245
impossibile usare [fault_status] in un parametro e in un tipo restituito
L'attributo [fault_status] può essere usato una sola volta per procedura. L'attributo [comm_status] può essere usato in modo indipendente.
MIDL2246
tipo restituito troppo complicato per le modalità /Oi, usando /Os
I tipi restituiti di grandi dimensioni passati per valore possono essere gestiti solo dagli stub di ottimizzazione /Os . Gli stub per questa routine verranno generati usando /Os ottimizzazione.
MIDL2247
tipo di handle generico troppo grande per le modalità /Oi, usando /Os
I tipi di handle generici di grandi dimensioni passati per valore possono essere gestiti solo dagli stub di ottimizzazione /Os . Gli stub per questa routine verranno generati usando /Os ottimizzazione.
MIDL2248
[allocate(all_nodes)] in un parametro [in,out] può orfanare la memoria originale
L'uso di [allocate(all_nodes)] in un parametro [in, out] deve riallocare la memoria contigua per la direzione [out] e quindi orfanizzare il parametro [in] . Questo utilizzo non è consigliato.
MIDL2249
non può avere un puntatore [ref] come braccio di unione
I puntatori di riferimento devono sempre puntare alla memoria valida, ma un'unione [in, out] con un puntatore di riferimento può restituire un puntatore di riferimento quando la direzione [in] usa un altro tipo.
MIDL2250
restituzione degli handle di contesto non supportati per le modalità /Oi usando /Os
MIDL non supporta i handle di contesto nelle modalità di ottimizzazione completamente interpretate. Passare all'ottimizzazione in modalità mista.
MIDL2251
utilizzo del parametro aggiuntivo [comm_status] o [fault_status] non supportato per le modalità /Oi usando /Os
Gli attributi [comm_status] e [fault_status] possono essere gestiti solo dagli stub di ottimizzazione /Os . Gli stub per questa routine verranno generati usando /Os ottimizzazione.
MIDL2252
uso di un tipo sconosciuto per [represent_as] o [user_marshal] non supportato per le modalità /Oi usando /Os
Usare l'attributo [represent_as] con un tipo locale non definito nel file IDL o un file IDL importato può essere gestito solo dagli stub di ottimizzazione /Os . Gli stub per questa routine verranno generati usando /Os ottimizzazione.
MIDL2253
tipi di matrice con [transmit_as] o [represent_as] non supportati nel tipo restituito per le modalità /Oi , usando /Os
La restituzione di una matrice con [transmit_as] o [represent_as] applicata può essere gestita solo dagli stub di ottimizzazione /Os . Gli stub per questa routine verranno generati usando /Os ottimizzazione.
MIDL2254
tipi di matrice con [transmit_as] o [represent_as] non supportati per le modalità pass-by-value per /Oi usando /Os
Questa azione non è supportata per l'ottimizzazione completamente interpretata. Passare all'ottimizzazione in modalità mista.
MIDL2255
[callback] richiede /ms_ext
L'attributo [callback] è un'estensione Microsoft e richiede che l'opzione /ms_ext sia abilitata. Non compilare con /osf, che esegue l'override di /ms_ext.
MIDL2256
dipendenza dell'interfaccia circolare
Questa interfaccia usa se stessa (direttamente o indirettamente) come interfaccia di base.
MIDL2257
solo IUnknown può essere usato come interfaccia radice
Attualmente, tutte le interfacce devono avere IUnknown come interfaccia radice.
MIDL2258
[IID_IS] può essere applicato solo ai puntatori alle interfacce
L'attributo [iid_is] può essere applicato solo ai puntatori dell'interfaccia, anche se possono essere specificati come puntatori a IUnknown *.
MIDL2259
le interfacce possono essere usate solo nei costrutti da puntatore a interfaccia
Non è possibile usare nomi di interfaccia, ad eccezione di interfacce di base o puntatori di interfaccia.
MIDL2260
i puntatori di interfaccia devono avere un UUID/IID
Il tipo di base dell'espressione [iid_is] deve essere un tipo UUID/GUID/IID.
MIDL2261
definizioni e dichiarazioni al di fuori del corpo dell'interfaccia richiede /ms_ext
L'inserimento di dichiarazioni e definizioni all'esterno di qualsiasi corpo dell'interfaccia è un'estensione Microsoft e richiede l'uso dell'opzione /ms_ext .
MIDL2262
più interfacce in un file richiedono /ms_ext
L'uso di più interfacce in un singolo file idl è un'estensione Microsoft e non è disponibile quando si compila in modalità /osf .
MIDL2263
solo uno di [implicit_handle], [auto_handle]o [explicit_handle] consentito
Ogni interfaccia può avere solo uno di questi tre attributi.
MIDL2264
[implicit_handle] fa riferimento a un tipo che non è un handle
Gli handle impliciti devono essere di uno dei tipi di handle.
MIDL2265
[oggetto] i proc possono essere usati solo con "/env win32"
Le interfacce con l'attributo [oggetto] non possono essere usate con ambienti a 16 bit.
MIDL2266
[callback] con -env dos/win16 non supportato per /Oi, usando /Os
I callback negli ambienti a 16 bit possono essere gestiti solo dagli stub di ottimizzazione /Os . Gli stub per questa routine verranno generati usando /Os ottimizzazione.
MIDL2267
float/double non supportato come parametro di primo livello per la modalità /Oi, usando /Os
I tipi float e double possono essere gestiti solo come parametri dagli stub di ottimizzazione /Os . Gli stub per questa routine verranno generati usando /Os ottimizzazione. I tipi float e double all'interno di strutture, matrici o unioni possono comunque essere gestiti con/Os.
MIDL2268
i puntatori agli handle di contesto non possono essere usati come valori restituiti
Gli handle di contesto devono essere usati come valori restituiti diretti, non come valori restituiti indiretti.
MIDL2269
le procedure in un'interfaccia oggetto devono restituire un HRESULT
Tutte le procedure in un'interfaccia dell'oggetto che non hanno l'attributo -[local] devono restituire unSCODEHRESULT/.
MIDL2270
duplicato UUID
Lo stesso degli UUID deve essere univoco.
MIDL2271
[oggetto] le interfacce devono derivare da un'altra interfaccia [oggetto] ad esempio IUnknown
L'ereditarietà dell'interfaccia è consentita solo quando si usano interfacce oggetto.
MIDL2272
L'interfaccia (asincrona) deve derivare da un'altra interfaccia (asincrona)
Le interfacce oggetto, sia sincrone che asincrone, devono derivare da IUnknown o da un'altra interfaccia OLE di base.
MIDL2273
[IID_IS] espressione deve essere un puntatore alla struttura IID
Il tipo di base dell'espressione [iid_is] deve essere un tipo UUID/GUID/IID.
MIDL2274
[call_as] il tipo deve essere una procedura [locale]
La destinazione di un tipo [call_as] , se definito, deve avere [ local] applicato.
MIDL2275
non definito [call_as] non deve essere usato in un'interfaccia dell'oggetto
È necessario definire la destinazione di un tipo [call_as]. Assicurarsi di aver fornito call_as routine sia per la chiamata che per le applicazioni chiamate.
MIDL2276
[auto_handle] può non essere usato con [codifica] o [decodifica]
Gli attributi [ codifica] e [ decodifica] possono essere usati solo con handle espliciti o handle impliciti.
MIDL2277
le normali procedure non sono consentite in un'interfaccia con [codifica] o [decodifica]
Le interfacce contenenti [codifica] o [decodifica] procedure non possono avere anche procedure remote.
MIDL2278
conformità o varianza di primo livello non consentita con [codifica] o [decodifica]
I tipi con conformità o varianza di primo livello non possono usare la serializzazione dei tipi, poiché non esiste alcun modo per fornire il ridimensionamento/lunghezza. Le strutture contenenti sono tuttavia consentite l'uso della serializzazione dei tipi.
MIDL2279
[out] i parametri potrebbero non avere "const"
Poiché un parametro [out] viene modificato, non deve essere dichiarato come costante sa.
MIDL2280
i valori restituiti potrebbero non avere "const"
Poiché un valore di funzione viene impostato quando la funzione restituisce, questo valore non deve essere dichiarato come costante.
MIDL2281
uso non valido dell'attributo "retval"
Verificare di non aver usato l'attributo [facoltativo] e che il parametro [retval] sia l'ultimo parametro nell'elenco.
MIDL2282
più convenzioni di chiamata illegali
È possibile applicare una sola convenzione chiamante a una singola procedura.
MIDL2283
attributo illegale nella procedura [oggetto]
L'attributo precedente si applica solo alle procedure nelle interfacce che non hanno l'attributo [object].
MIDL2284
[out] i puntatori dell'interfaccia devono usare double indiretto
Poiché il valore modificato è il puntatore all'interfaccia, è necessario che sia presente un altro livello di indiretto sopra il puntatore per consentire la restituzione.
MIDL2285
procedura usata due volte come chiamante in [call_as]
Una procedura [locale] specificata può essere usata una sola volta come destinazione di una [call_as], per evitare conflitti di nomi.
MIDL2286
[call_as] la destinazione deve avere [local] in un'interfaccia dell'oggetto
La destinazione di un [call_as] deve essere una procedura definita [locale] nell'interfaccia corrente.
MIDL2287
[codice] e [nocode] non possono essere usati insieme
Questi due attributi sono contraddittori e non possono essere usati insieme.
MIDL2288
procedure con [forse] o [message] gli attributi potrebbero non avere [out] params o i valori restituiti devono essere di tipo HRESULT o error_status_t
Poiché le procedure [forse] non restituiscono mai, non è possibile ottenere valori restituiti.
MIDL2289
il puntatore alla funzione deve essere usato
Anche se le definizioni di tipo funzione sono consentite in modalità /c_ext , possono essere usate solo come puntatori alle funzioni. Non possono mai essere trasmessi come parametro o come valore restituito di una routine remota.
MIDL2290
Le funzioni potrebbero non essere passate in un'operazione RPC
Le funzioni e i puntatori a funzione non possono essere passati come parametri o valori restituiti di routine remote.
MIDL2291
hyper/double non supportato come valore restituito per le modalità /Oi, usando /Os
I valori restituiti hyper e double possono essere gestiti solo dagli stub di ottimizzazione /Os . Gli stub per questa routine verranno generati usando l'ottimizzazione /Os .
MIDL2292
#pragma pack(pop) senza corrispondenza #pragma pack(push)
#pragma pack(push) e #pragma pack(pop) devono essere visualizzati in coppie corrispondenti. Sono stati specificati almeno un numero eccessivo di #pragma pack(push).At least one too many #pragma pack(push)s were specified.
MIDL2293
I campi della struttura stringable devono essere byte/char/wchar_t
Il tipo [string] può essere applicato solo a una struttura i cui campi sono tutti byte di tipo o una definizione di tipo equivalente a byte.
MIDL2294
[notify] non supportato per le modalità /Oi, usando /Os
L'attributo [notify] può essere elaborato solo dagli stub di ottimizzazione /Os .
MIDL2295
Il parametro handle o il tipo restituito non è supportato in una routine in un'interfaccia [oggetto]
Gli handle non possono essere usati con interfacce [ object].
MIDL2296
ANSI C consente di specificare solo la matrice più a sinistra associata
In una matrice conforme, ANSI C consente di non specificare solo la matrice più a sinistra (più significativa). Se più dimensioni sono conformi, MIDL tenterà di inserire "1" nelle altre dimensioni conformi. Se le altre dimensioni sono definite in una definizione di tipo diversa, non è possibile farlo. Provare a inserire tutte le dimensioni della matrice nella dichiarazione di matrice per evitare questo problema. In ogni caso, prestare attenzione ai calcoli di indicizzazione delle matrici eseguiti dal compilatore; potrebbe essere necessario eseguire calcoli personalizzati usando le dimensioni effettive.
MIDL2297
Parametri di unione per valore non supportati per le modalità /Oi, usando /Os
Questa azione non è supportata per l'ottimizzazione completamente interpretata. Passaggio all'ottimizzazione in modalità mista.
MIDL2298
L'attributo [version] viene ignorato in un'interfaccia [oggetto]
L'attributo [object] identifica un'interfaccia COM. Un elenco di attributi di interfaccia per un'interfaccia COM non può includere l'attributo [ version].
MIDL2299
L'attributo [size_is] o [max_is] non è valido in una matrice fissa
Le matrici di dimensioni fisse non possono usare gli attributi size_is o max_is .
MIDL2300
[encode] o [decode] non sono validi in un'interfaccia [oggetto]
L'attributo [object] identifica un'interfaccia COM. Gli attributi [encode] e [ decode] abilitano la serializzazione. Ciò significa che è possibile fornire e controllare i buffer per il marshalling dei dati e annullare ilmarshal, ma non è possibile eseguire la serializzazione sulle interfacce COM.
MIDL2301
[encode] o [decode] in un tipo richiede /ms_ext
La serializzazione non fa parte della specifica DCE-IDL. Si tratta di un'estensione Microsoft che richiede l'uso dell'opzione della riga di comando /ms_ext .
MIDL2302
int non supportato in /env win16 o /env dos
Le piattaforme Microsoft a 16 bit non supportano l'uso del tipo int in un file IDL. Qualificare il tipo int con small, short o long.
MIDL2303
[bstring] può essere applicato solo a un puntatore a "char" o "whchar_t"
Questo errore è obsoleto. Viene fornito solo per la compatibilità con le versioni precedenti.
MIDL2304
attributo non valido in una routine in un'interfaccia [oggetto]
L'attributo specificato non è consentito nella routine in un'interfaccia COM.
MIDL2305
attributo non valido in un'interfaccia [oggetto]
L'attributo specificato non è consentito in un'interfaccia COM.
MIDL2306
Troppi parametri o stack troppo grandi per le modalità /Oi, usando /Os
Questo avviso è obsoleto. Viene fornito solo per la compatibilità con le versioni precedenti. Indica che la chiamata alla procedura remota causa l'aumento dello stack di dimensioni superiori a 64 K.
MIDL2307
nessun attributo nel typedef di file ACF, quindi nessun effetto
Il file IDL deve contenere tutte le istruzioni typedef che non hanno attributi. Non devono verificarsi nei file ACF. In tal caso, il compilatore MIDL li interpreta come ridondanti e li ignora.
MIDL2308
convenzioni di chiamata diverse da __stdcall o __cdecl non supportate per le modalità /Oi, usando /Os
Le convenzioni di chiamata, ad esempio __pascal o __fastcall modificare il formato dello stack. Le modalità /Oi supportano solo le convenzioni di chiamata __stdcall e __cdecl . Se è necessario usare altre convenzioni di chiamata, usare la modalità /Os .
MIDL2309
Troppi metodi di delega nell'interfaccia, richiedono Windows 2000 o versione successiva
Un'interfaccia può ereditare da un'altra. In questo caso, i metodi dell'interfaccia di base vengono considerati delegati. Nessuna interfaccia derivata può contenere più di 256 metodi delegati.
MIDL2310
handle automatici non supportati con /env mac o /env powermac
Quando si compila il file IDL per un PowerMac, non è possibile usare handle di associazione automatici. È necessario specificare handle espliciti o impliciti.
MIDL2311
le istruzioni esterne al blocco di libreria non sono valide in modalità di compatibilità mktyplib
Potrebbe essere necessario specificare l'opzione della riga di comando /mktyplib203 durante la compilazione del file IDL.

Nota:
Lo strumento Mktyplib.exe è obsoleto. Usare invece il compilatore MIDL.


MIDL2312
sintassi non valida a meno che non si usi la modalità di compatibilità mktyplib
Potrebbe essere necessario specificare l'opzione della riga di comando /mktyplib203 durante la compilazione del file IDL.

Nota:
Lo strumento Mktyplib.exe è obsoleto. Usare invece il compilatore MIDL.


MIDL2313
definizione illegale, deve usare typedef in modalità di compatibilità mktyplib
Potrebbe essere necessario specificare l'opzione della riga di comando /mktyplib203 quando si compila il file IDL.

Nota:
Lo strumento Mktyplib.exe è obsoleto. Usare invece il compilatore MIDL.


MIDL2314
attributo puntatore esplicito [ptr] [ref] ignorato per i puntatori di interfaccia
I puntatori alle interfacce non possono avere attributi IDL.
MIDL2315
/Oi modalità non implementata per PowerMac, passando a /Os
MIDL2316
tipo di espressione illegale usato nell'attributo
Il valore predefinito per il puntatore deve essere una costante.
MIDL2317
tipo illegale usato nella pipe
I pipe sono limitati ai tipi di dati IDL di base. Ad esempio, non è possibile specificare una pipe di matrici.
MIDL2318
procedure usa pipe, usando /Oicf
La modalità selezionata non supporta pipe. Il compilatore MIDL ha rilevato l'uso di una o più pipe nell'interfaccia. Pertanto, viene compilato il file IDL in modalità /Oicf .
MIDL2319
procedure dispone di un attributo che richiede l'uso di /Oif, modalità di cambio
È necessario compilare le procedure [asincrone] in modalità /Oif .
MIDL2320
requisiti di ottimizzazione in conflitto, non è possibile ottimizzare
Questo errore indica spesso che è stato specificato sia /Os che /Oi (o una variante di /Oi) modalità del compilatore MIDL. Può anche significare che le funzionalità specificate nei file IDL e ACL richiedono l'uso di entrambe le modalità. È necessario selezionare una modalità o l'altra per ottimizzare.
MIDL2321
i pipe non possono essere elementi di matrice o membri di strutture o unioni
I tipi di dati della pipe possono essere solo parametri di primo livello.
MIDL2322
utilizzo della pipe non valido
Non è possibile usare pipe con gli attributi [transmit_as], [represent_as]o [user_marshal]. Inoltre, le pipe non possono essere usate come tipi restituiti.
MIDL2323
la funzionalità richiede l'opzione di ottimizzazione interpretata avanzata; use -Oicf
Questo errore indica che le opzioni della riga di comando del compilatore MIDL, ad esempio /robust , richiedono l'uso della modalità /Oicf .
MIDL2324
la funzionalità richiede l'opzione di ottimizzazione interpretata avanzata; use -Oicf
Questo avviso indica che le opzioni della riga di comando del compilatore MIDL, ad esempio /robust , richiedono l'uso della modalità /Oicf .
MIDL2329
l'opzione di ottimizzazione viene eliminata in più fasi, usare -Oic
La modalità di ottimizzazione /Oi1 è stata specificata nella riga di comando MIDL. Questa modalità non è più supportata e /Oicf deve essere usata invece.
MIDL2330
l'opzione di ottimizzazione viene eliminata in più fasi, usare -Oicf
La modalità di ottimizzazione /Oi2 è stata specificata nella riga di comando MIDL. Questa modalità non è più supportata e /Oicf deve essere usata invece.
MIDL2331
l'opzione di ottimizzazione viene eliminata in più fasi, usare -ic
La modalità di ottimizzazione i1 è stata specificata in un attributo ACF [optimize]. Questa modalità non è più supportata e icf deve essere usata invece.
File ACF di esempio:
[optimize("i1")] roo();    //MIDL 2331
MIDL2332
l'opzione di ottimizzazione viene eliminata in più fasi, usare -icf
La modalità di ottimizzazione i2 è stata specificata in un attributo ACF [optimize]. Questa modalità non è più supportata e icf deve essere usata invece.
File ACF di esempio:
[optimize("i2")] roo();    //MIDL 2332
MIDL2333
le opzioni -old e -new sono obsolete, usare -oldtlb e -newtlb
Questo messaggio è obsoleto e non viene più omesso da MIDL.
MIDL2334
valore di argomento non valido
Le varianti consentite dell'opzione della riga di comando /O includono /Os, /Oi, /Oic, /Oicf e /Oif.
MIDL2335
tipo di espressione illegale nella costante
L'espressione non restituisce una costante.
MIDL2336
tipo di espressione illegale nell'enumerazione
Un valore enumerato in una definizione enumerazione non restituisce un tipo integrale.
MIDL2337
dichiarazione di inoltro non soddisfatta
Il compilatore MIDL non è riuscito a risolvere la definizione di una dichiarazione di inoltro.
MIDL2338
i commutatori sono contraddittori
Non è possibile usare sia le opzioni della riga di comando /osf che /ms_ext quando si compila un file IDL. È necessario scegliere uno o l'altro.
MIDL2339
MIDL non può generare informazioni HOOKOLE per l'unione non in grado di rpc
Questo errore è obsoleto. Viene fornito rigorosamente per la compatibilità con le versioni precedenti.
MIDL2340
nessuna espressione di caso trovata per l'unione
Ogni campo di un'unione deve avere un'istruzione case con un'espressione costante.
MIDL2341
[user_marshal] e [wire_marshal] non supportati con flag -Oi e -Oic, usare -Os o -Oicf
Gli attributi [user_marshal] e [wire_marshal] richiedono le funzionalità di ottimizzazione specifiche disponibili solo in /Oicf (proxy senza codice con stringhe di formato rapido) o /Os (marshalling in modalità mista).
MIDL2342
i pipe non possono essere usati con la serializzazione dei dati, ad esempio [codifica] e/o [decodifica]
Non è possibile passare pipe come parametri alle procedure con gli attributi [codifica] o [decodifica].
MIDL2343
tutti i puntatori dell'interfaccia della pipe devono usare single indiretto
Non è possibile usare un puntatore a un puntatore a un'interfaccia della pipe in questo modo.
MIDL2344
[iid_is()] non può essere usato con un puntatore dell'interfaccia della pipe
Questo messaggio è obsoleto. Questo messaggio non viene più usato dal compilatore.
MIDL2345
opzione -lcid non valida o non valida
L'identificatore locale (LCID) specificato non è valido.
MIDL2346
lcid specificato è diverso dalla specifica precedente
I valori specificati in /lcid e [lcid] sono diversi. Il compilatore MIDL userà l'ultimo definito.
MIDL2347
importlib non è consentito all'esterno di un blocco di libreria
Tutte le istruzioni [importlib] devono essere eseguite in un blocco [library].
MIDL2348
valore a virgola mobile non valido
Questo errore non deve essere generato da MIDL. Se viene visualizzato questo errore, segnalare un bug a Microsoft fornendo tutti i file necessari per riprodurre l'errore, inclusi i file IDL, i file ACF, le intestazioni e così via.
MIDL2349
membro non valido
Le procedure non possono essere membri di una libreria.
MIDL2350
possibile membro non valido
Per essere un membro valido di una libreria, l'elemento della libreria deve essere un modulo, un carattere dispinterfaccia, una coclasse, un'istruzione if, una struttura, un'unione, un'enumerazione o una dichiarazione forward.
MIDL2351
mancata corrispondenza nei tipi di pipe e di interfaccia
Questo messaggio è obsoleto.
MIDL2352
string, matrice variabile, matrice conforme e parametri del puntatore completo possono non essere compatibili con i parametri pipe durante l'esecuzione
Un metodo che combina una o più stringhe [in], matrici variabili, matrici conformi e parametri del puntatore completo e qualsiasi parametro pipe [in] comporta la generazione di uno stub eseguito solo in sequenze di protocolli ncacn_* e ncalrpc nei computer Windows. L'uso dello stub per effettuare chiamate su sequenze di protocollo ncadg_* o accettare chiamate da altri fornitori RPC OSF DCE può generare errori nel server durante l'esecuzione. Questo errore si verifica a partire da Windows Server 2003.
MIDL2353
il parametro deve trovarsi in
Gli handle asincroni devono essere parametri [in].
MIDL2354
il tipo di parametro di un oggetto [asincrono] deve essere un puntatore doppio a un'interfaccia
Il parametro deve essere di tipo IAsyncManager **.
MIDL2355
tipo di handle asincrono non corretto
Il tipo di handle deve essere IAsyncManager o un tipo derivato da IAsyncManager.
MIDL2356
L'opzione "interna" abilita le funzionalità non supportate, usare con cautela
Evitare di usare questa opzione.
MIDL2357
le procedure asincrone non possono usare l'handle automatico
Le procedure con l'attributo [async] richiedono handle espliciti.
MIDL2358
error_status_t devono avere sia [comm_status] che [fault_status]
È stata specificata una routine con gli attributi IDL [forse] o [message] ma il tipo restituito ha solo gli attributi ACF [comm_status] o [fault_status]. Sono necessari entrambi gli attributi ACF.
File ACF di esempio:
[comm_status] roo();    //MIDL 2358
[fault_status] bar();    //MIDL 2358
[comm_status, fault_status] baz();    //OK
MIDL2359
questo costrutto è consentito solo all'interno di un blocco di libreria
Un modulo può verificarsi solo all'interno di un blocco di libreria.
MIDL2360
ridefinizione del tipo non valido
Un nuovo tipo è stato definito in modo ricorsivo in un tipo non existing.
Esempio:
typedef roo roo[10];    //MIDL 2360
MIDL2361
le procedure con un attributo [vararg] devono avere un parametro SAFEARRAY(VARIANT); param order è [vararg], [lcid], [retval]
La maggior parte dei parametri per le procedure con l'attributo [vararg] deve verificarsi prima del parametro SAFEARRAY(VARIANT). Il parametro SAFEARRAY(VARIANT) deve essere presente. Se l'elenco di parametri contiene un parametro con l'attributo [ lcid], deve seguire il parametro SAFEARRAY(VARIANT). Se l'elenco di parametri contiene un parametro con l'attributo [retval], deve verificarsi dopo il parametro con l'attributo [lcid].
MIDL2363
Troppi metodi nell'interfaccia, richiede Windows 2000 o versione successiva
Il compilatore MIDL non consente più di 1024 metodi in un'interfaccia durante la compilazione in modalità /Oicf .
MIDL2364
switch è in fase di eliminazione graduale
Le opzioni seguenti sono obsolete: /hookole, /env win16 e /env.
MIDL2365
non può derivare da IAdviseSink, IAdviseSink2 o IAdviseSinkEx
Queste interfacce non possono essere estese.
MIDL2366
non può assegnare un valore predefinito
L'assegnazione di un valore predefinito a un parametro è consentita in Visual Basic, ma non in C++. Se si usa C++, il valore predefinito viene ignorato.
MIDL2367
La generazione della libreria dei tipi per DOS/Win16/MAC non è supportata
MIDL non supporta librerie di tipi a 16 bit.
MIDL2368
errore durante la generazione della libreria dei tipi, ignorata
Si è verificato un errore non irreversibile durante la generazione della libreria dei tipi.
MIDL2369
ha superato le dimensioni dello stack per /Oi, usando /Os
La modalità di ottimizzazione -Oi è limitata a 128 byte di spazio dello stack per i parametri. Il compilatore è passato automaticamente alla modalità di ottimizzazione del sistema operativo per ovviare a questa limitazione.
Per evitare questo avviso, usare le modalità di ottimizzazione -Oicf o -Os. La modalità di ottimizzazione può essere modificata nella riga di comando specificando -Oicf o -Os anziché -Oi o aggiungendo un attributo [optimize9"icf")] o optimize[("s")] alla funzione nel file ACF.
Questo avviso si verifica in genere quando si passano strutture di grandi dimensioni come parametri per valore. Le dimensioni dello stack necessarie possono essere inferiori passando invece un puntatore alla struttura.
Esempio:
typedef struct
{
char a[127];
}
large;
//This function has a stack size of 132 (x86) or 136 (alpha) on 32-bit systems
void roo(large s, int a);    //MIDL 2360
// workaround: pass by reference
void bar (large *s, int a);
MIDL2370
l'uso di /robust richiede /Oicf, le modalità di commutazione
È necessario compilare in modalità /Oicf quando si specifica l'opzione /robust nella riga di comando.
MIDL2371
intervallo non corretto specificato
Il valore più alto specificato in un attributo [range] è minore del valore più basso.
Esempio:
void roo([range(3,2)] int a);    //MIDL 2371
MIDL2372
combinazione non valida dei parametri [in] e [out] per l'interfaccia [async_uuid]
Per questo tipo di interfaccia sono consentite solo combinazioni semplici di attributi con parametri [in] o [out].
MIDL2373
Le piattaforme DOS, Win16 e MAC non sono supportate con /robust
MIDL supporta l'opzione /robuste su Microsoft Windows 2000 o versioni successive.
MIDL2374
il supporto per i proxy stubless di stile NT 3.51 per le interfacce degli oggetti verrà eliminato; usare /Oif.
Questa modalità è obsoleta. Usare /Oif o /Oicf.
MIDL2375
[codifica] o [decodifica] con /robust richiede /Oicf
La serializzazione non può essere eseguita quando viene specificato il commutatore /robust .
MIDL2377
attributi in conflitto specificati
Sono stati specificati [context_handle_serialize] e [context_handle_noserialize].
MIDL2378
[serialize], [noserialize] può essere applicato a context_handles
Gli attributi ACF [context_handle_serialize] o [context_handle_noserialize] possono essere applicati solo ai tipi gestiti dal contesto.
File IDL di esempio:
typedef /*[context_handle] */ void *PV;    //Note: PV is *not* a context handle.
File ACF di esempio:
typedef [context_handle_serialize] PV;    //MIDL 2378
MIDL2379
Il compilatore ha raggiunto un limite per una rappresentazione stringa di formato. Per consigli, vedere la documentazione.
Il compilatore MIDL ha un limite di 64 KB per le stringhe di formato. Questo errore si verifica in genere quando i file IDL includono altri file IDL. Il file IDL composito generato da tutte le istruzioni di inclusione supera i limiti delle tabelle di rappresentazione dei tipi dell'interprete del motore di marshalling. Provare a usare la direttiva di importazione anziché la direttiva di inclusione nei file IDL. Per altre informazioni, vedere Importazione di file di intestazione di sistema, includere e importare.
MIDL2380
il formato di filo potrebbe non essere corretto, potrebbe essere necessario usare -ms_conf_struct, vedere la documentazione per consigli
Il compilatore MIDL non è riuscito a generare un formato trasmissibile per i dati. Un modo comune per ottenere questo errore consiste nel definire un ms_conf_struct all'interno di una struttura complessa.
MIDL2381
una dimensione dello stack o un offset maggiore di 64 K limite. Per consigli, vedere la documentazione.
La chiamata genera uno stack maggiore di 64 KB. Provare a passare i dati in blocchi più piccoli.
MIDL2382
modalità interprete forzata per la piattaforma a 64 bit
Le piattaforme a 64 bit richiedono la modalità di compilazione /Oicf.
MIDL2383
La dimensione dell'elemento matrice è maggiore di 64 KB.
Tutti gli elementi della matrice devono essere inferiori a 64 KB di dimensioni.
MIDL2384
può essere presente un solo parametro [Icid] in un metodo e deve essere ultimo o secondo per l'ultimo se l'ultimo parametro ha [retval]
Un parametro con l'attributo [lcid] deve verificarsi per ultimo. L'unica eccezione è quando è presente anche un parametro con l'attributo [retval]. Quando si verificano entrambi, il secondo all'ultimo parametro nell'elenco dei parametri deve avere l'attributo [ lcid] . L'ultimo parametro deve avere l'attributo [retval].
MIDL2385
sintassi errata per midl_pragma
Il compilatore MIDL ha rilevato un errore di sintassi sconosciuto in un'istruzione midl_pragma.
MIDL2386
__int3264 non è supportato in modalità /osf
Se è necessario usare __int3264, compilare in modalità /ms-ext.
MIDL2387
simbolo non risolto nella libreria dei tipi
Il compilatore non è riuscito a risolvere una dichiarazione formale o un tipo a cui si fa riferimento nella libreria dei tipi.
MIDL2388
non è possibile passare pipe asincrone per valore
Le pipe asincrone devono essere passate per riferimento o per indirizzo.
MIDL2389
l'offset dei parametri supera il limite di 64 KB per le procedure interpretate
Questo errore indica in genere che una routine ha un numero eccessivo di parametri.
MIDL2390
elemento matrice non valido
I pipe non possono essere usati come elementi di matrice.
MIDL2391
i membri dispinterface devono essere metodi, proprietà o interfacce
Un dispinterface non può contenere definizioni di tipi, strutture, enumerazioni o unioni.
MIDL2392
[locale] procedura senza [call_as]
Le procedure oggetto con l'attributo [locale] richiedono anche l'attributo [call_as] .
MIDL2393
vettore multidimensionale, passando a /Oicf
La modalità di ottimizzazione /Os non supporta matrici di dimensioni non crittografate multidimensionali. Il compilatore ha spostato automaticamente la modalità di ottimizzazione su /Oicf per questa funzione.
Questo avviso può essere eliminato a livello globale modificando la modalità del compilatore specificando /Oicf nella riga di comando MIDL o usando midl_pragma avviso (disabilita: 2393) nel file IDL. La modalità di ottimizzazione può essere modificata per una singola funzione aggiungendo l'attributo [optimize("icf")] alla funzione nel file ACF.
Nell'esempio seguente viene illustrato questo avviso:
void roo(long s1, [size_is(s1)] long a[][30];    //MIDL2393
void bar(long s1, long s2, [size_is(s1,s2) long **a);//MIDL2393
MIDL2395
tipo o costrutto non supportato in un blocco di libreria perché Oleaut32.dll supporto per i tipi polimorfici a 64 KB manca
L'automazione OLE non supporta tipi polimorfici, ad esempio _int3264, INT_PTR e così via. Questi tipi hanno rappresentazioni di dati incompatibili tra piattaforme a 32 bit e a 64 bit. La chiamata remota avrà esito negativo in fase di esecuzione su piattaforme a 64 bit.

Nota:
Si noti che a partire dalla versione di Windows 2000, i file TLB a 64 bit sono supportati da Automazione OLE convertendo le informazioni TLB a 32 bit in fase di esecuzione. Pertanto, solo la generazione TLB a 32 bit è supportata da MIDL.


Se MIDL viene usato solo per generare un file di intestazione, il commutatore /notlb elimina la generazione del file TLB.

MIDL2396
codice dell'interprete precedente generato per 64b
Questo errore è obsoleto. Se viene visualizzato questo errore, segnalare un bug a Microsoft fornendo i file IDL, i file ACF e la riga di comando MIDL completa.
MIDL2397
l'opzione del compilatore non è più supportata
L'opzione o le opzioni specificate non sono più supportate.
MIDL2398
non è possibile eseguire il motore MIDL
A partire dalla versione di Windows 2000 (MIDL versione 5.03.279), il compilatore MIDL viene implementato usando due file eseguibili: Midl.exe (il driver) e Midlc.exe (motore del compilatore). Questo errore indica che l'Midl.exe non è in grado di avviare Midlc.exe. Assicurarsi che Midlc.exe si trovi nella stessa directory di Midl.exe e che siano la stessa versione.
L'errore potrebbe essere stato causato dalla copia di Midl.exe ma non Midlx.exe dalla distribuzione più recente. Eseguire midl e/o midlc nella riga di comando senza parametri per visualizzare il numero di versione del file eseguibile.
MIDL2399
comandi non valido dal driver
A partire dalla versione di Windows 2000 (MIDL versione 5.03.279), il compilatore MIDL viene implementato usando due file eseguibili: Midl.exe (il driver) e Midlc.exe (motore del compilatore). Questo errore indica che il file temporaneo usato per passare i comandi da Midl.exe a Midlc.exe è mancante o danneggiato. Assicurarsi che Midlc.exe si trovi nella stessa directory di Midl.exe e che siano la stessa versione.
L'errore potrebbe essere stato causato dal tentativo di eseguire Midlc.exe direttamente o copiando Midl.exe ma non Midlc.exe dalla distribuzione più recente. Eseguire midl e/o midlc nella riga di comando senza parametri per visualizzare il numero di versione del file eseguibile.
MIDL2400
per l'automazione ole, i parametri facoltativi devono essere VARIANT o VARIANT *
L'automazione OLE richiede che tutti i parametri [facoltativi] siano di tipo VARIANT o VARIANT*.
In automazione OLE l'uso di parametri non VARIANT può causare l'errore della chiamata in fase di esecuzione o il passaggio di dati non definiti per i parametri [facoltativi].
MIDL2401
[defaultvalue] viene applicato a un oggetto non VARIANT e [facoltativo]. Rimuovere [facoltativo]
L'attributo [defaultvalue] implica [facoltativo]. L'attributo [ facoltativo] non è necessario.
MIDL2402
[facoltativo] l'attributo è inapplicabile all'esterno di un blocco di libreria
La funzionalità implicita dell'attributo [ facoltativo] non è applicabile ai proxy generati per un'interfaccia esterna a un blocco di libreria.
MIDL2403
Il tipo di dati del parametro [Icid] deve essere lungo
L'automazione OLE richiede che i parametri con l'attributo [Icid] siano di tipo lungo.
MIDL2404
procedure con [propput], [propget] o [propref] non possono avere più di un parametro obbligatorio dopo [facoltativo]
Non è possibile avere più di un parametro senza [facoltativo] dopo l'ultimo parametro con [facoltativo] quando si usa [propput], [propget]o [ propputref].
MIDL2405
[comm_status] o [fault_status] con selezione richiede -Oicf
La modalità di ottimizzazione -Oi precedente non supporta le procedure o i parametri con [ comm_status] o [ fault_status] con selezione (ovvero usando [ codifica] e/o [ decodifica]).
Questo avviso può essere eliminato a livello globale specificando -Oicf nella riga di comando MIDL o per una singola funzione aggiungendo l'attributo [optimize("icf:)] alla funzione nel file ACF.
In generale, la modalità di ottimizzazione -Oicf è consigliata tramite la modalità -Oi .
MIDL2406
mancata corrispondenza tra driver midl e versione del compilatore
A partire dalla versione di Windows 2000 (MIDL versione 5.03.279) il compilatore MIDL viene implementato usando due file eseguibili: Midl.exe (driver) e Midlc.exe (motore del compilatore). Questo errore indica che la versione di Midl.exe non corrisponde alla versione di Midlc.exe.
L'errore potrebbe essere stato causato dalla copia di Midl.exe ma non Midlc.exe dalla distribuzione più recente. Eseguire midl e/o midlc nella riga di comando senza parametri per visualizzare il numero di versione del file eseguibile.
MIDL2407
nessun file intermedio specificato: usare Midl.exe
A partire dalla versione di Windows 2000 (MIDL versione 5.03.279), il compilatore MIDL viene implementato usando due file eseguibili: Midl.exe (il driver) e Midlc.exe (motore del compilatore). Questo errore indica che Midlc.exe è stato eseguito direttamente anziché usare Midl.exe.
MIDL2408
problema di elaborazione con un parametro in una procedura
Questo errore può essere visualizzato durante l'importazione di dati da un TLB e quando una procedura ha un parametro non valido.
Se viene visualizzato questo errore, segnalare un bug a Microsoft. Specificare i file IDL, i file ACF, il file TLB e la riga di comando MIDL completa.
MIDL2409
problema di elaborazione di un campo in una struttura
Questo errore può essere visualizzato durante l'importazione di dati da un TLB e quando una struttura ha una struttura o un campo di unione non valido.
Se viene visualizzato questo errore, segnalare un bug a Microsoft. Specificare i file IDL, i file ACF, il file TLB e la riga di comando MIDL completa.
MIDL2410
rilevata inconsistenza del compilatore interno: l'offset della stringa di formato non è valido. Per altre informazioni, vedere la documentazione .
Il compilatore MIDL ha rilevato un valore non valido nelle strutture dati interne. Ciò può essere causato da strutture ricorsive o violando i propri limiti di rappresentazione per i dati interni. Per identificare e/o risolvere il problema, provare a semplificare il file IDL. A tale scopo, è possibile semplificare i parametri complessi e le strutture di dati ricorsive o rendere il file IDL più piccolo suddividendolo. Questo messaggio può essere accompagnato da una stampa diagnostica con informazioni aggiuntive sul problema.
Se viene visualizzato questo errore, segnalare un bug a Microsoft. Specificare i file IDL, i file ACF, la riga di comando MIDL completa e l'output di diagnostica, se presenti.
MIDL2411
rilevata incoerenza interna del compilatore: l'offset del tipo non è valido. Per altre informazioni, vedere la documentazione .
Il compilatore MIDL ha rilevato un valore non valido nelle strutture dati interne. Ciò può essere causato da strutture ricorsive o dal compilatore che violano i propri limiti di rappresentazione per i dati interni. Per identificare e/o risolvere il problema, provare a semplificare il file IDL. È possibile eseguire questa operazione semplificando i parametri complessi e le strutture di dati ricorsive o rendendo il file IDL più piccolo suddividendolo. Questo messaggio può essere accompagnato da una stampa diagnostica con informazioni aggiuntive sul problema.
Se viene visualizzato questo errore, segnalare un bug a Microsoft. Specificare i file IDL, i file ACF, la riga di comando MIDL completa e l'output di diagnostica, se presenti.
MIDL2412
La sintassi SAFEARRAY(roo) non è supportata all'esterno del blocco di libreria, usare LPSAFEARRAY per il proxy
I safeARRAY tipizzato in modo esplicito non sono consentiti all'esterno di un blocco di libreria. Usare invece LPSAFEARRAY.
Nell'esempio seguente viene illustrato questo errore:
void roo(SAFEARRAY(long) *a); //MIDL2412 when outside a library block
void roo(LPSAFEAEEAY a);         //OK
MIDL2413
i campi bit non sono supportati
I campi bit in stile C non sono supportati da MIDL. Ciò si applica alla generazione del proxy e alla generazione TLB.
MIDL2414
I tipi restituiti a virgola mobile o complessi con [decodifica] non sono supportati in -Oicf, usando -OI
Le procedure con tipi restituiti a virgola mobile o struttura/unione non sono supportate nella selezione dello stile -Oicf. Un problema per 32 bit consiste nell'usare la modalità di ottimizzazione -Oi durante la serializzazione dei dati (usando [codifica] e/o [decodifica]). Tuttavia, poiché l'interprete di stile -Oi precedente e il supporto per la selezione devono essere eliminati dopo la versione di Windows 2000, l'uso dei puntatori è fortemente suggerito come il lavoro intorno a questo problema. Si noti anche che in genere, modificando un metodo di interfaccia per usare un puntatore [out, ref] anziché il valore restituito che causa il problema è completamente compatibile con le versioni precedenti e può essere facilmente nascosto dal livello dell'app.
Questo avviso può essere eliminato a livello globale specificando -Oi nella riga di comando MIDL o per una singola funzione aggiungendo l'attributo [optimize("i")] alla funzione nel file ACF.
Nell'esempio seguente viene illustrato il problema:
roo.idl:
double GetDouble();
roo.acf:
[decode] GetDouble();
Un'opzione per risolvere questa limitazione consiste nel passare un parametro [out] per contenere il risultato anziché usare un valore restituito:
roo.idl:
void GetDouble([out] double *result); //top level pointer is a [ref] pointer
roo.acf:
[decode] GetDouble();
Come accennato in precedenza, la soluzione descritta in precedenza è buona non solo per le nuove interfacce, ma anche come un lavoro per quelli precedenti. La rappresentazione di filo per il nuovo argomento "out" è uguale a quella del valore restituito (si noti void come nuovo valore restituito).
MIDL2415
il tipo restituito non è supportato per 64 bit quando si usa [decodifica]
Le procedure con tipi restituiti a virgola mobile o struttura/unione non sono supportate in modalità a 64 bit durante l'esecuzione della serializzazione dei dati (usando [ codifica] e/o [ decodifica]). Ciò è correlato all'interprete -Oi precedente e al serializzatore di dati non supportato nella piattaforma a 64 bit. Per altre informazioni, vedere la descrizione di MIDL2414.
Nell'esempio seguente viene illustrato questo errore:
roo.idl:
double GetDouble();
roo.acf:
[decode] GetDouble();
Di seguito è consigliabile eseguire operazioni di spostamento sia per le interfacce nuove che per le vecchie interfacce. Usare un parametro [out] per contenere il risultato anziché usare un valore restituito:
roo.idl:
void GetDouble([out] double *result); //top level pointer is a [ref] pointer.
roo.acf:
[decode] GetDouble();
Si noti che questa soluzione è completamente compatibile con le versioni precedenti, come la rappresentazione del filo di un puntatore [ref, out] o un doppio è uguale a quello di un doppio.
MIDL2416
il tipo trasmesso potrebbe non contenere un puntatore completo per [wire_marshal] o [user_marshal]
I tipi con [ wire_marshal] o [ user_marshal] attributi potrebbero non contenere puntatori completi ([ ptr]). Usare [ unique] o [ ref] invece.
Nell'esempio seguente viene illustrato questo errore:
typedef struct
{
    [ptr] long *a;    //Should use [ref] or [unique] instead
}
st1;
typedef [wire_marshal(st1)] struct
{
    long a;
}
st2:
void roo(st2 *s);    //MIDL2416
MIDL2417
il tipo trasmesso deve essere un puntatore o avere una dimensione costante per [wire_marshal] e [user_marshal]
I tipi di primo livello con [ wire_marshal] o [ user_marshal] attributi devono avere dimensioni ben definite in fase di compilazione. Non possono essere o contenere matrici conformi o di dimensioni variabili.
Nell'esempio seguente viene illustrato questo errore:
typedef struct        //Type contains variable-sized array
{
    long s;
    [size_is(s)] char a[];
}
st1;
typedef [wire_marshal(st1)] struct
{
    long a;
}
st2;
void roo(st2 *s);        //MIDL2417
MIDL2418
le procedure con [propget] devono avere almeno un parametro o un valore restituito
Le procedure con l'attributo [propget] devono avere alcuni mezzi per restituire il valore della proprietà. Devono avere almeno un parametro [out] o un valore restituito.
MIDL2461
L'attributo [readonly] è stato applicato a livello di metodo.
L'attributo [readonly] può essere applicato solo a livello di parametro.
MIDL2465
Le strutture contenenti matrici conformi devono essere passate tramite riferimento
I parametri di primo livello in RPC devono avere dimensioni ben definite in fase di compilazione. Non possono essere, né contenere matrice conforme o di dimensioni variabili. Inoltre, gli utenti non possono codificare o decodificare un tipo senza dimensioni ben definite. Per riferimento, le applicazioni devono passare struct o struct conformi conformi.
Nell'esempio seguente viene illustrato questo errore:
typedef struct        //Type contains variable-sized array
{
    long s;
    [size_is(s)] char a[];
}
st1;
void roo(st1 s);        //MIDL2465
 
on .acf file
typedef [encode,decode] st1; //MIDL2465
MIDL9008
codice> di errore <del compilatore interno: il compilatore non può continuare per un motivo sconosciuto. Per una soluzione alternativa, vedere la documentazione.
Impossibile continuare il compilatore e la causa dell'errore è sconosciuta. Il numero di errore esadecimale è un identificatore di errore di sistema. La compilazione potrebbe non essere riuscita a causa di un problema esterno, ad esempio una condizione di memoria insufficiente. In questo caso, è possibile trovare altre informazioni in Winerror.h o Ntstatus.h.
Esistono due situazioni che in genere generano questo errore:
  • Il compilatore MIDL non è riuscito a ripristinare dopo aver rilevato un errore nel file IDL. Se MIDL ha restituito eventuali messaggi di errore relativi al file IDL, provare a correggerli e ricompilarli. Se non sono presenti messaggi di errore, il compilatore potrebbe non essere riuscito prima di segnalare un errore. Cercare un errore di sintassi nella riga per cui viene segnalato l'errore interno del compilatore.
  • Il compilatore MIDL non è riuscito a generare codice corretto in un'opzione di ottimizzazione specificata. Provare a modificare le modalità del compilatore, compilare nell'ottimizzazione in modalità mista (/Os) o rimuovere tutte le ottimizzazioni. In alternativa, ricompilare usando il flag /NO_FORMAT_OPT per eliminare l'ottimizzazione predefinita di routine e descrittori di tipo.
A volte questo errore si verifica anche quando il file IDL è corretto e non vengono usate opzioni di ottimizzazione. Se si tratta del caso, provare a riscrivere la sezione del codice nelle vicinanze della posizione in cui è stato segnalato l'errore rimuovendo eventuali modifiche recenti, semplificando o riorganizzando i tipi di dati, modificando i prototipi o iniziando a commentare parti del file IDL per individuare il codice del problema.
Se nessuna di queste opzioni funziona o se si ritiene che il problema possa essere correlato a un bug in Midl.exe, inviare una notifica a Microsoft, fornendo tutti i dettagli pertinenti.