AUTOC.C
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.                    Microsoft RPC Version 2.0
  3.            Copyright Microsoft Corp. 1992, 1993, 1994- 1996
  4.                          Auto Example
  5.     FILE:       autoc.c
  6.     USAGE:      autoc
  7.     PURPOSE:    Client side of RPC distributed application
  8.     FUNCTIONS:  main() - binds to server and calls remote procedure
  9.     COMMENTS:   This distributed application (time stamp) is implemented
  10.                 using an auto handle.  The client side of the application
  11.                 does not care which server provides the time stamp; it
  12.                 merely wants to get the time from any available server.
  13. ****************************************************************************/
  14. #include <stdlib.h>
  15. #include <stdio.h>
  16. #include <ctype.h>
  17. #include <time.h>
  18. #include "auto.h"    // header file generated by MIDL compiler
  19. #define PURPOSE 
  20. "This Microsoft RPC Version 2.0 sample program demonstratesn
  21. the use of the [auto_handle] attribute. For more informationn
  22. about attributes and RPC API functions, see the RPC programmingn
  23. guide and reference.nn"
  24. void Usage(char * pszProgramName)
  25. {
  26.     fprintf(stderr, "%s", PURPOSE);
  27.     fprintf(stderr, "Usage:  %sn", pszProgramName);
  28.     exit(1);
  29. }
  30. void _CRTAPI1 main(int argc, char **argv)
  31. {
  32.     time_t t1;
  33.     time_t t2;
  34.     char * pszTime;
  35.     int i;
  36.     /* allow the user to override settings with command line switches */
  37.     for (i = 1; i < argc; i++) {
  38.         if ((*argv[i] == '-') || (*argv[i] == '/')) {
  39.             switch (tolower(*(argv[i]+1))) {
  40.             case 'h':
  41.             case '?':
  42.             default:
  43.                 Usage(argv[0]);
  44.             }
  45.         }
  46.         else
  47.             Usage(argv[0]);
  48.     }
  49.     RpcTryExcept {
  50.         GetTime(&t1);  // GetTime is a remote procedure
  51.         GetTime(&t2);
  52.         pszTime = ctime(&t1);
  53.         printf("time 1= %sn", pszTime);
  54.         pszTime = ctime(&t2);
  55.         printf("time 2= %sn", pszTime);
  56.         Shutdown();    // Shutdown is a remote procedure
  57.     }
  58.     RpcExcept(1) {
  59.         printf("The RPC runtime library raised an exception.n");
  60.         printf("Please verify that the server application and n");
  61.         printf("the locator service have been started.");
  62.     }
  63.     RpcEndExcept
  64.     exit(0);
  65. }  // end main()
  66. /*********************************************************************/
  67. /*                 MIDL allocate and free                            */
  68. /*********************************************************************/
  69. void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len)
  70. {
  71.     return(malloc(len));
  72. }
  73. void __RPC_USER midl_user_free(void __RPC_FAR * ptr)
  74. {
  75.     free(ptr);
  76. }
  77. /* end file autoc.c */