extern "C" __declspec( dllexport )
int math_add( int const d1, int const d2 ) {
return d1 + d2;
}
Test c++ console app:
#includeC# class:extern "C" __declspec( dllimport ) int math_add( int, int ); int main( int argc, char* argv[] ) { int i = math_add( 4, 5 ); std::cout << '\n' << i << '\n'; std::cout << "Press any key.."; std::cin.get(); return 0; }
using System.Runtime.InteropServices;
namespace test {
public class PILib {
[DllImport( "piMath.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int math_add( int _v1, int _v2);
}
}
Calling in c#:
private void button1_Click( object sender, EventArgs e ) {
int i = PILib.math_add( 3, 5 );
MessageBox.Show( i.ToString() );
}
Output:

