I wanted to know, does c# dll work in unity ? (not the unity pro)
and if it does, assume I compile a c# dll, and in that dll I create a wrapper to a c++ dll, will i be able to use those c++ dll files indirectly in unity (indie)?
You can use a C# dll (also called ".NET assembly") - simply drop the assembly into the assets folder and it will be available at the given compile step.
However if that C# dll is trying to access a native (for instance C++) dll (using p/invoke and friends), that C# assembly will fail at runtime - unless ofcourse you're using Unity Pro.
You may want to check this other related question - .Net assemblies work in both Unity and Unity Pro. As far as doing an interop wrapper, why not try it?
Well there is the FmodEX-Wrapper which is supposed to work in Indie and Pro. As far as I can see, that wrapper depends on the fmodex.dll so to me it seems like it's somehow possible to circumvent the limitations. But I'm no expert in C# assemblies, so maybe it's doing something else, that I missed. ;)