There are several options.
If you want to interact with .net, you can write C ++ / CLI wrapper classes. This allows you to write C ++ classes that are directly visible from .net, and your own C ++ can be used in their implementation.
Historically, COM has also been used for this purpose, but is currently less popular.
There is also a library called SWIG that will interact with Java and other languages.
Edit: It looks like Windows 8 will be easier with WinRT components
user180326
source share