Partilhar via


Desenvolvendo o servidor

Ao criar um programa de servidor para um aplicativo distribuído, você deve usar o arquivo de cabeçalho e o stub do servidor gerados pelo compilador MIDL. Para obter detalhes, consulte Desenvolvendo a interface . Inclua o arquivo de cabeçalho no arquivo do programa C do servidor. Compile o stub do servidor com os arquivos de origem C que compõem seu aplicativo. Vincule os arquivos de objeto resultantes com a biblioteca de importação. Esse processo é ilustrado no diagrama a seguir.

processo de criação de um programa de servidor para um aplicativo distribuído

Como você pode ver no exemplo na ilustração, um arquivo MIDL chamado MyApp.idl foi usado para definir a interface. O compilador MIDL usou MyApp.idl para produzir MyApp_s.c e MyApp.h. Ele também produz um arquivo de origem C para o stub do cliente, mas isso não é relevante para essa discussão específica. O arquivo de origem C do programa de servidor (nesse caso, Mysrvr.c) deve incluir o arquivo Myapp.h. Ele também precisará incluir os arquivos Rpc.h e Rpcndr.h.

O aplicativo de servidor foi desenvolvido em dois arquivos, Mysrvr.c e Rprocs.c. O arquivo Mysrvr.c contém as funções necessárias para colocar o programa de servidor em funcionamento. Os procedimentos remotos oferecidos pelo programa de servidor estão contidos no arquivo Rprocs.c.

Os arquivos Mysrvr.c e Rprocs.c foram compilados junto com Myapp_s.c para produzir arquivos de objeto. Os arquivos de objeto foram então vinculados à biblioteca de tempo de execução RPC e a quaisquer outras bibliotecas que possam precisar. O resultado é um programa de servidor executável chamado Mysrvr.exe.

Se você não compilar o arquivo IDL no modo de compatibilidade do OSF (Open Software Foundation), seu programa de servidor deverá fornecer uma função para alocar memória e uma função para desalocá-lo. Para o Windows 2000 e versões posteriores do Windows, o modo recomendado é /Oicf. Para obter detalhes, consulte Como a memória é alocada e desalocada e Ponteiros e Alocação de Memória.