If you want your question to go here, please send a mail to gergeleit@gmd.de. I will put any question that might help other users of my port on this page.
A: ONC RPC (formerly calles Sun RPC) is a de-facto RPC standard for Unix. It is included in all major Unix distributions. Microsoft RPC (MS RPC) is a different RPC system and it is interoperable with OSF/DCE RPC. OSF/DCE is also available for nearly al OSs, but usually it is not part of the standard distribution. OSF/DCE RPC is newer and a little bit more powerful than ONC RPC, but for most applications both RPC systems will do the job. ONC RPC and OSF/DCE RPC (and thus MS RPC) are not interoperable at all.
A: ONC RPC is exactly what you need. This port for NT and the Unix-implementations are interoperable (thanks to XDR from Sun).
A: Again, ONC RPC is exactly what you need. This port for NT and the Unix-implementations have the same APIs (but don't forget to call "rpc _nt_init()" and "rpc_nt_exit()" in the client code).
A: You may use, copy or modify ONC RPC for Windows NT according to the Sun copyright. In my understanding this includes the free use in your (commercial) applications. Please read the standard disclaimer.
A: Yes, everything but the portmapper service will work (Windows95 does not support the service API). You don't need the portmapper at all, if you write a client-only application on Windows 95. For a server the ascii version of the portmapper (pm_ascii.exe) is ok as well and this runs also on Windows95. Also, it is easy to learn from NTs service implementation how to run the portmapper as one thread of a GUI application.
A: No, this has never been a goal of my port. Maybe, some parts (client, XDR) run on Win32s, but I never tested that.
A: I known some companies that offer RPC products commercially, but I dont't know about the details (see www.noblenet.com, www.netmanage.com, www.distinct.com, and www.intergraph.com (called RhaPC-d).
A: Have a look at this short lesson based on UNIX Network Programming from W. Richard Stevens, Prentice Hall, Inc., consult the Solaris (SunOS) manuals, or a good book on ONC RPC programming.
A: For testing you should log in as "Administrator". Copy
'oncrpc.dll' to the windows system32 directory. Then you should open three
command line interfaces.
- in the first start 'pm_ascii'
- in the second start 'cou_svc'
- in the third start 'do_cou localhost'
This should result in some local action. If this works you should install
the portmapper service by copying portmap.exe also to the windows system32
diretory. Then register it using inst_pm (e.g. 'inst_pm c:\winnt35\system32\portmap.exe').
Then start the portmapper with the service control panel. Then do the test
again and leave out the first step 'pm_ascii'.
If this also works you have the infrastructure installed for compiling
your own ONC RPC applications. For building them you will need the rpcgen
stub generator, the oncrpc.lib in the linker comand line and the directory
'rpc' with the include files in the compilers include path.
A: The current distribution runs out-of-the-box only with MS VC++ (works with all 32 bit versions, but best with version 4.2). Sorry I have no Borland or Watcom compiler availabel.
A: Yes, you should ignore these warnings. I did only those changes to the original code that were absolutly necessary to get it running (always included in #ifdef WIN32). I did not try to make it more ANSI C like.
A: It tried to call the C preprocessor, namely "cl.exe" from VC++. It couldn't execute it. Make sure it is in the standard path.
A: I assume you entered a wrong executable for the portmap service when using inst_pm. Sorry for the unprecise description, but you have to enter the full pathname plus the filename of the executable i.e. you have to enter something like: inst_pm c:\winnt\system32\portmap.exe. If it still fails, please check in with regedt32 in the current_control\service section the entered executable for the portmap service.
A: Make sure you are using a binary file. This awful "CR-LF" translation often breaks ported code.
A: No, if you are willing to trust me (and the others who did the compilation) and the compilers and you work with NT on Intel,PowerPC,orALPHA you can use the provided binaries.
A: An easy way to do GUI-integration is to use separate threads that execute the RPC server-loop and maybe also the client. These threads should communicate with the GUI threads via events. In order to use the server-stub in another program, you have to redefine the "main()" to something else like e.g. "server_main()". You can do this with the preprocessor if you don't want to change the 'rpcgen'-generated file.
A: I would recommend to define a C subproject that produces a library with the (C-)stubs in it. Then use this lib and the "rpcgen"-generated header-file (included in 'extern "C" {...}) in your C++ main project.
A: No.
A: No, but version 1.11 produces header-files that are at least a little bit more understandable for C++.
to be continued ...