I've been doing research on how processes communicate for the past like 4 months and I still can not answer this very simple question, how do most present day applications communicate within their own framework? Which tends to get me asking another question, do application programmers still program using C++?
note: I am aware of the game design forum! This is not intended to be a question directed at game design but at all application development. The resulting application will be more similar in nature to say Inventor.
Now to begin I guess it would be best to describe what I'm thinking and what I'm trying to accomplish. I am creating a tool chain or an 'engine' which will simulate various real time events and present these events in a visual manner. To do so I will be utilizing various techniques for application structuring such as Client/Server and RPC and the such. I would like to program the core process which will handle things such as UI, Physics, 3D Visualization, Peripheral Interfacing and so on in C++ as speed optimization in core would be ideal. As in many game type engines I would like to have a tier dedicated to the programming of a new world or in my case system. And in the end I am focusing on the Windows platform.
All of that said..... I am not sure what tools I should be using especially when it comes to IPC. At present time I believe I am narrowing to three distinct possibilities for IPC with connection to the core process COM, Named Pipes and Socketing. Now there are probably a bizzilion articles on all of this but I cannot find one that clearly identifies the intended end use and common present use of any IPC tools currently employable. The only thing I have to go on at the moment is many programmers saying do not use COM(forums and such.) Well right there in my humble opinion COM would be ideal for the core process. Using COM I can connect to client modules written in C#.NET and leave the possibility open to C++ modules as well. I'm sure Named Pipelines can accomplish similar tasks if not the exact same tasks as COM Connection Points and C# Deligates ???? Socketing I would probably leave to across network communication ... I am honestly so lost in this regards because I do not find any TypeLibraries on my computer not directly related to Microsoft infra-structuring ??? This to me suggests that no one uses COM! I did find some .tlb files in the XSI folder but I can't say for certain what their intended uses are but their presence makes me feel I'm at least not completely wasting my time ???
I mean there are plenty of DLLs are all communications done through object level shared memory ? Are applications just acquiring C++ interfaces and calling the functions from there?? Essentially that is how I started but there are all these tools already created that have long lasting and present standards why not use them? I really don't know anybody who does any programming so I only know what I read. My texts are all very clear on how and what can be done but not on the who's and the why's thereof ... Could someone please shed some light? I guess it would help if I start by trying the different methods out and seeing what works best for me ... I will be trying to write my first complete idl and compile my first complete tlb .. kind of as we speak ....