"Imported methods are exported…"? My congratulations.
You C++ code looks like "regular" C++ code, unmanaged, not C++/CLI code.
There is no a simple way to export managed code to unmanaged. Some even think it's impossible, but this is not really so.
You can make your C# code COM-visible and create a COM component you can use in your unmanaged code. This way is disgusting (the troubles of using way too obsolete and boring COM), but it will work.
Another way is not trivial, but it works. Please see my past answers:
loading C# DLL in MFC[
^],
How can I use a dll created in Visual Basic 2008 in Visual Basic 6.0[
^],
Call Managed DLL written in C# from Unmanged Code VC++[
^],
API's in .Net: Managed or UnManaged Code[
^].
Overall, I would strongly discourage using managed code in the unmanaged.
I would strongly advise doing very different thing. First of all, switch to .NET in your application technology. You can easily use your legacy code written in C++, using P/Invoke. Even better, switch to C++/CLI, where you can freely mix managed and unmanaged code, or use only managed or only unmanaged. See also:
https://msdn.microsoft.com/en-us/library/ms235282.aspx[
^].
See also my past answer:
How to play beeps in C#[
^].
—SA