Calling Unmanaged C++ Function By C# Using Visual Studio
Join the DZone community and get the full member experience.
Join For FreeUse interop.
In C++, create a dll:
Cpp.h
extern "C" __declspec(dllexport)
int add(int a, int b);
Cpp.cpp
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
{
[DllImport(
"Cpp.dll",
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:
Somewhere.cs
this.lbResult.Text = Cpp.add(a, b).ToString();
Why would you do this? Well, the C++-Code may be more performant.
Opinions expressed by DZone contributors are their own.
Comments