Распределенные вычисления: технология Microsoft RPC. Часть1. Фертиков В.В. - 27 стр.

UptoLike

Составители: 

27
Единственный параметр со значением NULL указывает
RpcMgmtStopServerListening, что локальное приложение должно остано-
вить прослушивание удаленных вызовов процедур. Два NULL-параметра для
RpcServerUnregisterIf указывают, что никакие интерфейсы не останутся
зарегистрированными. Параметр FALSE требует, чтобы регистрация интерфей -
са была аннулирована немедленно.
Процедура Shutdown, поскольку она является удаленной , должна также
быть добавлена в секцию тела интерфейса IDL файла:
/* файл: hello.idl */
[ uuid (6B29FC40-CA47-1067-B31D-00DD010662DA),
version(1.0)
]
interface hello
{
void HelloProc([in, string] char * pszString);
void Shutdown(void);
}
Наконец, программа клиента должна добавить вызов функции Shutdown:
/* файл helloc.c (фрагмент) */
#include "hello.h" // заголовок, сгенерированный
// компилятором MIDL
void main(void)
{
char * pszString = "Hello, world";
RpcStringBindingCompose(...);
RpcBindingFromStringBinding(...);
HelloProc(pszString);
Shutdown();
RpcStringFree(...);
RpcBindingFree(...);
}
Особенности сборки RPC приложений в среде визуаль-
ного программирования
Рассмотренная выше последовательность операций иллюстрирует процесс
сборки распределенного приложения с использованием простых программных
средств, сопровождающих поставку компилятора Microsoft C: компилятора
MIDL, утилиты nmake, компоновщика, библиотекаря и т.д . Те же шаги можно
                                   27
    Единственный     параметр      со     значением   NULL     указывает
RpcMgmtStopServerListening , что локальное приложение должно остано-
вить прослушивание удаленных вызовов процедур. Два NULL-параметра для
RpcServerUnregisterIf указывают, что никакие интерфейсы не останутся
зарегистрированными. Параметр FALSE требует, чтобы регистрация интерфей-
са была аннулирована немедленно.
     Процедура Shutdown, поскольку она является удаленной, должна также
быть добавлена в секцию тела интерфейса IDL файла:

/* файл: hello.idl */

[ uuid (6B29FC40-CA47-1067-B31D-00DD010662DA),
  version(1.0)
]
interface hello
{
void HelloProc([in, string] char * pszString);
void Shutdown(void);
}

    Наконец, программа клиента должна добавить вызов функции Shutdown :

/* файл helloc.c (фрагмент) */

#include "hello.h" // заголовок, сгенерированный
                   // компилятором MIDL
void main(void)
{
    char * pszString = "Hello, world";

    RpcStringBindingCompose(...);
    RpcBindingFromStringBinding(...);

    HelloProc(pszString);
    Shutdown();

    RpcStringFree(...);
    RpcBindingFree(...);
}


   Особенности сборки RPC приложений в среде визуаль-
ного программирования
    Рассмотренная выше последовательность операций иллюстрирует процесс
сборки распределенного приложения с использованием простых программных
средств, сопровождающих поставку компилятора Microsoft C: компилятора
MIDL, утилиты nmake, компоновщика, библиотекаря и т.д. Те же шаги можно