Développement du client

Le développement d’un programme client RPC est similaire au développement du programme serveur. Pour plus d’informations sur le développement d’un programme serveur RPC, consultez Développement du serveur.

Comme dans le développement serveur, votre programme client doit inclure le fichier d’en-tête que le compilateur MIDL génère à partir de votre fichier .idl. Le compilateur MIDL génère également un fichier source C contenant le stub du client. Vous devez compiler ce fichier source C et le lier à votre programme client. (En outre, le compilateur MIDL génère un fichier source C contenant le stub du serveur, mais cela n’est pas pertinent pour cette discussion.)

En plus de compiler et de lier le stub client à vos fichiers de programme, vous devez lier la bibliothèque d’importation (et toutes les autres bibliothèques dont votre programme client a besoin) à votre programme client. Le processus de création d’un programme client RPC est illustré dans le diagramme suivant.

processus de création d’un programme client pour une application distribuée

L’exemple de l’illustration précédente illustre la création d’un programme client RPC appelé MyClnt.exe. La première étape consiste à définir l’interface dans le fichier MyApp.idl. Le compilateur MIDL utilise MyApp.idl pour générer le fichier MyApp_c.c, qui contient le stub client. Il génère également le fichier MyApp.h, que le programme client doit inclure. Le programme client doit également inclure les fichiers RPC.h et RPCNDR.h.

Le programme client lui-même est créé dans le fichier MyClnt.c. Dans un projet réel, le programme client est généralement composé de plusieurs fichiers sources C. Tous doivent être compilés et liés ensemble. Toutefois, cet exemple n’utilise qu’un seul fichier par souci de simplicité.

Les fichiers MyClnt.c et MyApp_c.c sont compilés et liés avec la bibliothèque d’exécution RPC et toutes les autres bibliothèques dont le programme client a besoin. Le résultat est un programme client exécutable nommé MyClnt.exe.

Si vous ne compilez pas votre fichier IDL en mode de compatibilité OSF (/osf), votre programme client doit fournir une fonction pour allouer de la mémoire et une fonction pour la désallouer. Pour Windows 2000 et versions ultérieures, le mode recommandé est /Oicf. Pour plus d’informations, consultez Comment la mémoire est allouée et libérée, et Pointeurs et allocation de mémoire.