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" and run
the installation procedure by starting "setup" and rebooting
the machine. When it is up again 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 start
the portmapper service (only on NT) 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: Since version 1.12 the distribution runs out-of-the-box only with MS VC++ (works with all 32 bit versions, but best with version 4.2) and Borland C++ 5.0 (Thanks to Harald Albrecht). Sorry, there is no Watcom version availabel up to now.
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, the file "portmap.exe" is not available in the correct location. Check, whether you find it in the "system32" windows subdirectory. If it is there and the service start still fails, please check in with regedt32 in the current_control\service section the entered executable for the portmap service.
A: You have probably forgotten to initialize the Windows Sockets first. This should by done by calling "rpc_nt_init()" before you do any network stuff. The server code generated by "rpcgen" (from this distribution) does it automatically if you compile the generated code it with "-DWIN32".
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 since version 1.11 it produces header-files that are at least a little bit more understandable for C++.
to be continued ...