When you compile a C#/ VB.NET application you get a .DLL/.EXE which can be either 32 bit, 64 bit, or either.
That is interesting. The 32 bit DLL that I had trouble with in C++ was useable from C# thru P/Invoke. Another C++ annoyance is the .LIB file requirement. To link in C++ you need the .LIB file. And to run, the .DLL. With C# P/Invoke, only the .DLL is necessary.