MIDL gebruiken
Alle interfaces voor programma's die gebruikmaken van RPC moeten worden gedefinieerd in Microsoft Interface Definition Language (MIDL) en gecompileerd met de MIDL-compiler. De volgende onderwerpen bevatten een kort overzicht van het maken en compileren van een MIDL-interface:
Zie De IDL- en ACF-bestandenvoor een gedetailleerde bespreking van deze onderwerpen.
Een interface definiëren met MIDL
MIDL-bestanden zijn tekstbestanden die u met een teksteditor kunt maken en bewerken. Als u een UUID voor uw interface genereert, wordt de uitvoer doorgaans opgeslagen in een MIDL-sjabloonbestand. Voor meer informatie over UUID's, zie UUID's genereren.
Alle interfaces in MIDL volgen dezelfde indeling. Ze beginnen met een header die een lijst met interfacekenmerken en de interfacenaam bevat. De kenmerken staan tussen vierkante haken. De interfaceheader wordt gevolgd door de hoofdtekst, die tussen accolades wordt geplaatst. In het volgende voorbeeld wordt een eenvoudige interface weergegeven:
[
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]
);
}
Sommige kenmerken die doorgaans worden weergegeven in een MIDL-interfacedefinitie zijn de UUID en het versienummer van de interface. De hoofdtekst van de interfacedefinitie moet de proceduredeclaraties bevatten van alle externe procedures in de interface. Het kan ook de declaraties van gegevenstypen en constanten bevatten die vereist zijn voor de interface.
Alle parameters in de externe proceduredeclaraties moeten worden gedeclareerd als [in], [uit], of [in, uit]. Deze declaraties geven aan dat het clientprogramma gegevens doorgeeft aan een externe procedure, gegevens uit een externe procedure haalt, of beide. Zie De IDL Interface Bodyvoor meer gedetailleerde informatie over declaraties van interfaceparameters.
Een MIDL-bestand compileren
De MIDL-compiler is een opdrachtregelprogramma dat automatisch wordt geïnstalleerd met de Platform Software Development Kit (SDK). Roep deze aan in een opdrachtvenster door de opdracht te typen midl, gevolgd door de naam van een MIDL-bestand, op de opdrachtregel. Zorg ervoor dat de map met de MIDL-compiler zich in uw pad bevindt. In het volgende voorbeeld ziet u het gebruik ervan:
midl MyApp.idl
Houd er rekening mee dat u de extensie niet hoeft op te nemen als de bestandsnaam de extensie .idl heeft. U kunt de MIDL-compiler ook opdrachtregelswitches gebruiken door ze in te voegen tussen de opdracht midl en de bestandsnaam. Dit wordt gedemonstreerd in het volgende voorbeeld:
midl /acf MyApp.acf MyApp.idl
In dit voorbeeld wordt de MIDL-compiler uitgevoerd met behulp van het bestand MyApp.idl als invoerbestand. De opdrachtregelswitch /acf geeft de compiler de opdracht om ook een toepassingsconfiguratiebestand (ACF) te gebruiken voor invoer. Toepassingsconfiguratiebestanden worden uitgebreider besproken in De IDL- en ACF-bestanden.
Zie de Microsoft Interface Definition Language (MIDL)voor meer gedetailleerde informatie over het gebruik van de MIDL-compiler. Deze bevat informatie over de volgende onderwerpen:
- C-preprocessorvereisten voor MIDL-
- overwegingen voor C/C++-compiler
- bestanden gegenereerd voor een RPC-interface
- MIDL-opdrachtregelreferentie
- MIDL Taalreferentie
- MIDL-compilerfouten en -waarschuwingen