There is no such a problem. There are no barriers between .NET language. In other words, you work with an assembly written in different .NET language the same way as in the same language. You reference one assembly by another assembly or load it during runtime using the class
System.Reflection.Assembly
. If you are using Visual Studio and the assembly is referenced, you can click on the reference node to browse the referenced assembly. It will show what can you openly use in it. (Why I say "openly"? because reflection allows to use even non-public types and members.) And Intellisense will show you what to write, too.
If another project is pure unmanaged, you cannot do it, but you can use P/Invoke, which is much more difficult:
http://en.wikipedia.org/wiki/P/Invoke[
^],
http://msdn.microsoft.com/library/en-us/vcmxspec/html/vcmg_PlatformInvocationServices.asp[
^].
—SA