Do I have to create a C# DLL to call C++ DLL or I can call it directly from my C# application?
You can call a Win32 navite dll directly from your code using P/Invoke.
http://msdn.microsoft.com/en-us/magazine/cc164123.aspx