Is it a good idea to combine C++ and C# or does it pose any immediate issues?
I have an application that needs some parts to be C++, and some parts to be C# (for increased efficiency). What would be the best way to achieve using a native C++ dll in C#?
Yes using C# and C++ for your product is very common and a good idea.
Sometimes you can use managed C++, in which case you can use your managed C++ module just like any other .NET module.
Typically you'd do everything that you can in C#. For the parts you need to do in C++ you'd typically create a C++ DLL and then call into that DLL from C#. Marshalling of parameters is done automatically for you.
Here is an example of importing a C function inside a DLL into C#:
[DllImport("user32", CharSet=CharSet.Auto, SetLastError=true)]
internal static extern int GetWindowText(IntPtr hWnd, [Out, MarshalAs(UnmanagedType.LPTStr)] StringBuilder lpString, int nMaxCount);