打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#工程调用外部的DLL文件

在.NET编程中,我们会经常碰到要调用外部的DLL文件。首先,动态链接库文件(DLL)的格式其实和EXE文件相同,都是可执行的,不同的是EXE可单独运行,而DLL往往是供其他程序动态的调用,它不主动的执行任何代码。其次,链接库可分为两种:静态链接库和动态链接库。

静态链接库是在程序编译的时候静态的链接到程序中去的,这样编译完后文件体积变大了。

动态链接库是程序在运行的时候动态的把DLL中的函数链接到程序中执行,这样就不用在编译的时候链接文件了,因此节省了文件大小。

在.NET平台下C#如何调用DLL文件呢?首先我们构造一个自己的DLL文件。假设,我们已经有一个.h文件和.lib文件。

.h文件:

int add(int x,int y);

int minux(int x,int y);

构造DLL文件:

1.新建一个VC++ Class Library工程

2.添加2个头文件math.h,imath.h和cpp文件imath.cpp

math.h:

int add(int x,int y);

int minus(int x,int y);

imath.h:

extern "C"

{

        __declspec(dllexport) int Add(int x,int y);

        __declspec(dllexport) int Minus(int x,int y);

}

imath.cpp:

int Add(int x,int y)

{

        return add(x,y);

}

int Minus(int x,int y)

{

       return minus(x,y);

}

编译生成DLL文件imath.dll

3.在C#工程中调用imath.dll中的Add,Minus

C#调用外部DLL文件,需要使用using System.Runtime.InteropServices;导入命名空间

接着定义要调用到的函数:

[DllImport("imath.dll",EntryPoint="Add")]

private static extern int Add(int x,int y);

[DllImport("imath.dll",EntryPoint="Minus")]

private static extern int Minus(int x,int y);

至此以后就可以在需要调用Add和Minus的地方直接调用Add和Minus了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vs2010中动态链接库的编写和调用
在C#中调用VC编写的dll库
在写dll时关于declspec(dllexport)和declspec(dllimport)
静态链接库(Lib)和动态链接库(DLL)
VC++ 动态库与静态库的区别
【C++】编写动态链接库(DLL) __stdcall_【wjxgzz的博客】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服