I need to pass some data (integers) from one (C++) program to another (C#). What is the fastest way to do this?
P.S.: OS: Windows XP
I need to pass some data (integers) from one (C++) program to another (C#). What is the fastest way to do this?
P.S.: OS: Windows XP
My personal preference for this, given that you're using C++ and C# both, and it's on the same system, would be to use Pipes.
They work very well from native code (C++) as well as from C# via NamedPipeClientStream and NamedPipeServerStream.
However, there are other options for Interprocess Communication, any of which would work.
Shared memory would be the fastest but named pipes are pretty fast too and much easier to use.
Check out this article for a run-down of the available options. Your best bet is probably a pipe.
Using files would be the simplest way. If you need the speed, then network sockets may be a good option.
Just in case it's helpful, if it's not critical that this be interprocess communication (if the functionality you require out of one can be shaped into a DLL which both use or similar) you can use the Common Language Runtime for interoperability.
My recommendation would be Sockets or RPC. I'm not familiar with pipes, but it seems to be a popular option too.