Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Depois de definir a interface cliente/servidor, você geralmente desenvolve seus arquivos de origem cliente e servidor. Em seguida, use um único makefile para gerar os arquivos de stub e cabeçalho. Compile e vincule os aplicativos cliente e servidor. No entanto, se esta for sua primeira exposição ao ambiente de computação distribuída, convém invocar o compilador MIDL agora para ver o que o MIDL gera antes de continuar. O compilador MIDL (Midl.exe) é instalado automaticamente quando você instala o Platform Software Development Kit (SDK).
Quando você compilar esses arquivos, certifique-se de que Hello.idl e Hello.acf estão no mesmo diretório. O comando a seguir gerará o arquivo de cabeçalho Hello.h, e os stubs de cliente e servidor, Hello_c.c e Hello_s.c.
midl hello.idl
Observe que Hello.h contém protótipos de função para HelloProc e Shutdown, bem como declarações de encaminhamento para duas funções de gerenciamento de memória, midl_user_allocate e midl_user_free. Você fornecerá essas duas funções no aplicativo do servidor. Se os dados estivessem sendo transmitidos do servidor para o cliente (por meio de um parâmetro [out]), você também precisaria fornecer essas duas funções de gerenciamento de memória no aplicativo cliente.
Observe as definições para a variável de identificador global, hello_IfHandle e os nomes de identificador da interface do cliente e do servidor, hello_v1_0_c_ifspec e hello_v1_0_s_ifspec. Os aplicativos cliente e servidor usarão os nomes do identificador de interface em chamadas em tempo de execução.
Neste ponto, você não precisa fazer nada com os arquivos de stub Hello_c.c e hello_s.c.
/*file: hello.h */
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.00.06
/* at Tue Feb 20 11:33:32 1996 */
/* Compiler settings for hello.idl:
Os, W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none */
//@@MIDL_FILE_HEADING( )
#include "Rpc.h"
#include "rpcndr.h"
#ifndef __hello_h_
#define __hello_h_
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
#ifndef __hello_INTERFACE_DEFINED__
#define __hello_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: hello
* at Tue Feb 20 11:33:32 1996
* using MIDL 3.00.06
****************************************/
/* [implicit_handle][version][uuid] */
/* size is 0 */
void HelloProc(
/* [string][in] */ unsigned char __RPC_FAR *pszString);
/* size is 0 */
void Shutdown( void);
extern handle_t hello_IfHandle;
extern RPC_IF_HANDLE hello_v1_0_c_ifspec;
extern RPC_IF_HANDLE hello_v1_0_s_ifspec;
#endif /* __hello_INTERFACE_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif