Hix...Sau khi biên dịch ra dll thì đâu còn phụ thuộc vào ngôn ngữ sử dụng.Bạn import như một dll bình thường (Nhưng hình như phải reg trước khi sử dụng bằng app regsvr32.exe của Windows)
Éc, đâu ra cái này vậy trời :-ss.
Làm cái demo 
demo.cpp
Code:
extern "C"__declspec(dllexport) int sum(int a,int b);
extern "C" __declspec(dllexport) void swap(int &a, int &b);
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
int sum (int a, int b)
{
return (a + b);
}
void swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
program.cs
Code:
class Program
{
[DllImport("demo.dll", EntryPoint = "sum",
ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
static extern int sum(int a, int b);
[DllImport("demo.dll")]
static extern void swap(ref int a, ref int b);
static void Main(string[] args)
{
int a = 5;
int b = 2;
int s = sum(a,b);
swap(ref a,ref b);
Console.WriteLine("a = {0}", a);
Console.WriteLine("b = {0}", b);
Console.WriteLine("a + b = {0}",s);
}
}