c#怎样调用c++ dll文件
推荐于2016-07-19 · 知道合伙人软件行家
关注
展开全部
使用vc++6.0创建dll,然后用vs2010调用。
1.vc++6.0创建动态链接库工程:win32 Dynamic-Link Library。随便起名,dllDemo,不过注意的是,你生成的dll文件是和你的工程名是一样的而不是你的cpp文件名。创建dllDemo.cpp和dllDemo,h。下面是代码。
/*
* dllDemo.h
*/
extern "C" _declspec(dllexport) int Sum(int a,int b);//加法函数。
extern "C" _declspec(dllexport) int Max(int a, int b);//取较大值函数
extern "C" _declspec(dllexport) int Min(int a, int b);//取较小值函数
///:~
/*
*dllDemo.cpp
*
#include "dllDemo.h"
extern "C" _declspec(dllexport)int Sum(int a, int b)
{
return a+b;
}
extern "C" _declspec(dllexport)int Max(int a, int b)
{
if(a>=b)
return a;
else
return b;
}extern "C" _declspec(dllexport)int Min(int a, int b)
{
if(a>=b)
return b;
else
return a;
}
///:~
然后编译运行,会在debug目录下找到dllDemo.dll这个动态链接库。
下一步,在c#中调用。新建,项目,控制台应用程序。(注意是C#,不是C#环境您重新切一下),在Program.cs中贴入以下代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;//引入dll文件中的函数
class Program
{
//引入dll文件中的函数
[DllImport("dllDemo.dll")]
private static extern int Sum(int a, int b);
[DllImport("dllDemo.dll")]
private static extern int Max(int a, int b);
[DllImport("dllDemo.dll")]
private static extern int Min(int a, int b);
static void Main(string[] args)
{
int a = Sum(3, 5);
Console.WriteLine(a);
Console.WriteLine(Max(5,10));
Console.WriteLine(Min(12,25));
Console.ReadKey();//直接main里边最后加个Console.Read()不就好了。要按键才退出。
}
}
然后把你编译好的dllDemo.dll粘贴到工程的bin下的debug目录下(vs2008可能直接是debug目录,总之弄到debug目录下就好),运行系统
1.vc++6.0创建动态链接库工程:win32 Dynamic-Link Library。随便起名,dllDemo,不过注意的是,你生成的dll文件是和你的工程名是一样的而不是你的cpp文件名。创建dllDemo.cpp和dllDemo,h。下面是代码。
/*
* dllDemo.h
*/
extern "C" _declspec(dllexport) int Sum(int a,int b);//加法函数。
extern "C" _declspec(dllexport) int Max(int a, int b);//取较大值函数
extern "C" _declspec(dllexport) int Min(int a, int b);//取较小值函数
///:~
/*
*dllDemo.cpp
*
#include "dllDemo.h"
extern "C" _declspec(dllexport)int Sum(int a, int b)
{
return a+b;
}
extern "C" _declspec(dllexport)int Max(int a, int b)
{
if(a>=b)
return a;
else
return b;
}extern "C" _declspec(dllexport)int Min(int a, int b)
{
if(a>=b)
return b;
else
return a;
}
///:~
然后编译运行,会在debug目录下找到dllDemo.dll这个动态链接库。
下一步,在c#中调用。新建,项目,控制台应用程序。(注意是C#,不是C#环境您重新切一下),在Program.cs中贴入以下代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;//引入dll文件中的函数
class Program
{
//引入dll文件中的函数
[DllImport("dllDemo.dll")]
private static extern int Sum(int a, int b);
[DllImport("dllDemo.dll")]
private static extern int Max(int a, int b);
[DllImport("dllDemo.dll")]
private static extern int Min(int a, int b);
static void Main(string[] args)
{
int a = Sum(3, 5);
Console.WriteLine(a);
Console.WriteLine(Max(5,10));
Console.WriteLine(Min(12,25));
Console.ReadKey();//直接main里边最后加个Console.Read()不就好了。要按键才退出。
}
}
然后把你编译好的dllDemo.dll粘贴到工程的bin下的debug目录下(vs2008可能直接是debug目录,总之弄到debug目录下就好),运行系统
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询