Hi,

We have a requirement where the back end processing logic is in C++. There are two front ends :
1. The GUI front end is to be developed using C# .NET
2. The Command Line front end is to be developed using C++

The backend engine is in pure C++.
Complex entities are being passed from the front end to the back end.
Considering that handling differs with respect to marshalling, is it normal to design a single consistent DLL for the backend irrespective of the type of front end (C#, C++).
As we need to pass pointers to complex data types (Classes with strings, characters, integers etc.) is it ok to use the same DLL in the back end considering issues with marshalling for the C# front end.

Or are two separate DLLs with separate signatures for the each of the C# based front and C++ based front end a safer approach ?