Gestione dell'interfaccia
A meno che non si sappia al di là di ogni dubbio che l'interfaccia non verrà mai usata attraverso i limiti tra apartment, thread e processi, è necessario decidere come fornire supporto al marshalling per le interfacce. Esistono tre modi per fornire supporto per il marshaling:
- Scrivi il tuo codice proxy/stub che chiama il canale COM, il quale a sua volta chiama le librerie run-time RPC. Teoricamente, è possibile farlo, ma in pratica è quasi impossibile fare senza una notevole quantità di sforzo.
- Descrivere le interfacce in un file IDL (Interface Definition Language) e usare il compilatore MIDL per generare una DLL proxy/stub. Questo metodo offre prestazioni ottimali e la massima flessibilità in termini di tipi di dati accettabili. Mediante gli stub proxy generati da MIDL, è possibile controllare non solo la gestione della memoria, ma anche la serializzazione e la deserializzazione di tipi di dati complessi tra le diverse piattaforme.
- Usare MIDL per generare una libreria dei tipi usata dal sistema per fornire il supporto del marshalling in fase di esecuzione. Questo è il modo più semplice per implementare il supporto del marshalling. Tutto quello che devi fare è generare una libreria dei tipi e registrarla. Le interfacce devono essere compatibili con l'automazione ( oleautomation o doppia), che pone alcune restrizioni sui tipi di dati che è possibile usare come parametri del metodo. Nella maggior parte dei casi, tuttavia, il vantaggio di avere le interfacce accessibili ai programmi scritti in altri linguaggi, ad esempio Microsoft Visual Basic e Java, supera le limitazioni dei tipi di dati.
Argomenti correlati