DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Calling Unmanaged C++ Function By C# Using Visual Studio

  • submit to reddit
        Use interop.

In C++, create a dll:

extern "C" __declspec(dllexport)
                          int add(int a, int b);

int add(int a, int b)
	return a + b;

In C#, write a wrapper to make use of that function:

using System.Runtime.InteropServices;

// Imports the CPP DLL
namespace ManagedMain
    public class Cpp
            EntryPoint = "add",
            ExactSpelling = false
        public static extern Int32 add(Int32 a, Int32 b);

and finally make use of it as if it was a ordinary C# member:

this.lbResult.Text = Cpp.add(a, b).ToString();

Why would you do this? Well, the C++-Code may be more performant.