Použití MIDL
Všechna rozhraní pro programy používající RPC musí být definována v jazyce MIDL (Microsoft Interface Definition Language) a kompilována pomocí kompilátoru MIDL. Následující témata představují stručný přehled vytváření a kompilace rozhraní MIDL:
Podrobnou diskuzi o těchto tématech najdete v tématu IDL a soubory ACF.
Definování rozhraní pomocí MIDL
MIDL soubory jsou textové soubory, které můžete vytvářet a upravovat pomocí textového editoru. Pokud pro rozhraní vygenerujete UUID, obvykle uložíte výstup do souboru MIDL šablony. Další informace o identifikátorech UUID naleznete v tématu Generování identifikátorů UUID rozhraní.
Všechna rozhraní v MIDL mají stejný formát. Začínají hlavičkou, která obsahuje seznam atributů rozhraní a název rozhraní. Atributy jsou uzavřeny v hranatých závorkách. Za záhlavím rozhraní následuje jeho tělo, které je uzavřeno ve složených závorkách. Jednoduché rozhraní je znázorněno v následujícím příkladu:
[
uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
version(1.0)
]
interface MyInterface
{
const unsigned short INT_ARRAY_LEN = 100;
void MyRemoteProc(
[in] int param1,
[out] int outArray[INT_ARRAY_LEN]
);
}
Některé atributy, které se obvykle zobrazují v definici rozhraní MIDL, jsou UUID a číslo verze rozhraní. Tělo definice rozhraní musí obsahovat deklarace procedur všech vzdálených procedur v rozhraní. Může také obsahovat deklarace datových typů a konstant vyžadovaných rozhraním.
Všechny parametry v deklarací vzdálené procedury musí být deklarovány jako [v], [out], nebo [v, out]. Tyto deklarace určují, že klientský program předává data do vzdálené procedury, získá data ze vzdálené procedury nebo obojí. Podrobnější informace o deklaracích parametrů rozhraní naleznete v tématu IDL Interface Body.
Kompilace souboru MIDL
Kompilátor MIDL je nástroj příkazového řádku, který se automaticky nainstaluje se sadou SDK (Platform Software Development Kit). Vyvoláte ho v příkazovém okně zadáním příkazu midlnásledovaný názvem souboru MIDL na příkazovém řádku. Ujistěte se, že adresář obsahující kompilátor MIDL je ve vaší cestě. Následující příklad ukazuje jeho použití:
midl MyApp.idl
Všimněte si, že pokud název souboru má příponu .idl, nemusíte příponu zahrnout. Kompilátor MIDL můžete také použít přepínače příkazového řádku tak, že je vložíte mezi příkaz midl a název souboru. To je znázorněno v následujícím příkladu:
midl /acf MyApp.acf MyApp.idl
V tomto příkladu se kompilátor MIDL spustí pomocí souboru MyApp.idl jako vstupního souboru. Přepínač příkazového řádku /acf dává kompilátoru pokyn, aby pro vstup používal konfigurační soubor aplikace (ACF). Konfigurační soubory aplikace jsou podrobněji popsány v IDL a ACF Files.
Podrobnější informace o použití kompilátoru MIDL naleznete v jazyka MIDL (Microsoft Interface Definition Language), který obsahuje informace o následujících tématech:
- požadavky preprocesoru jazyka C pro MIDL
- úvahy o kompilátoru C/C++
- soubory generované pro rozhraní RPC
- Referenční příručka příkazového řádku MIDL
- MIDL jazyková referenční příručka
- chyby a upozornění kompilátoru MIDL