Sdílet prostřednictvím


Vývoj rozhraní

Rozhraní RPC popisuje vzdálené funkce, které serverový program implementuje. Rozhraní zajišťuje, aby klient a server komunikují pomocí stejných pravidel, když klient vyvolá vzdálený postup, který server nabízí. Rozhraní se skládá z názvu rozhraní, některých atributů, volitelných definic typu nebo konstant a sady deklarací procedur. Každá deklarace procedury musí obsahovat název procedury, návratový typ a seznam parametrů.

Rozhraní jsou definována v jazyce MIDL (Microsoft Interface Definition Language). Pokud znáte jazyk C nebo C++, definice rozhraní MIDL se budou zdát poměrně jednoduché. MIDL se podobá jazyku C a C++ mnoha způsoby.

Při vývoji aplikace RPC se textový editor používá k definování rozhraní a jeho uložení do textového souboru s příponou .idl. Další informace naleznete v tématu soubory IDL a ACF. Kompilátor MIDL vygeneruje hlavičkový soubor, který program obsahuje ve zdrojových souborech klienta a serveru. Kompilátor MIDL také generuje dva zdrojové soubory jazyka C. Zkompilujete a propojíte jeden ke klientskému programu a druhý k serverovému programu. Tyto dva zdrojové soubory jazyka C jsou stuby klienta a serveru. Přehled klientských a serverových stubů najdete v Jak RPC funguje. Přehled kompilátoru MIDL najdete v tématu Kompilace souboru MIDL.

Ve výchozím nastavení má klientský a serverový stub stejný název, což může způsobit problémy, pokud klient odkazuje na serverový stub, nebo naopak. Použití midl /prefix možnost zabraňuje výskytu této běžné chyby.

Následující obrázek znázorňuje proces vytvoření rozhraní.

vytvoření zástupných procedur klienta a serveru s možností /prefix zabraňuje náhodným problémům kompilace

Je také možné, že budete muset zadat konfigurační soubor aplikace (ACF) pro vstup do kompilátoru MIDL. Další informace o konfiguračních souborech aplikace naleznete v tématu IDL a ACF Files.

Kromě kompilátoru MIDL budete obvykle muset použít nástroj Uuidgen k vygenerování univerzálního jedinečného identifikátoru (UUID, zaměnitelné s termínem GUID). Tato část obsahuje informace o obou těchto nástrojích rozdělených do následujících témat: