Tag c#,c++创建动态库

 

一、什么是动态库

         动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。

         在链接阶段,和静态库不一样,静态库是将库插入到可执行文件中,动态库并没有被插入到可执行文件中,而只是将动态库的描述信息(库名,库中函数和他们在库中的位置等)插入到可执行文件中,在可执行文件运行时,系统会读取可执行文件依赖的动态库文件描述信息,并根据这些信息把它们从磁盘加载到内存中来,然后程序就可以调用动态库中的函数,程序执行依赖动态库。

二、在linux中生成静态库和动态库方法

       静态库(static link library):本质就是将一个或多个目标文件打包在一起;

       生成静态库的方法:ar -crv 静态库名 目标文件1,....;

       静态库命名的后缀名为.a,文件名以lib开头。

       动态库:也称共享库,在unix/linux平台其后缀名为.so,文件名以lib开头,也可以附加版本号,比如libfunc.so.5.4,表示该动态库的主版本号为(Major Version)5,次版本号(Minor Version)为4;

       动态库的生成方法:gcc -shared -fPIC -o 动态库名 目标文件1,....
运行时要让系统找到动态库,1、将动态库放到lib目录里,2、给LD_LIBRARY_PATH增加路径;

三、在linux静态库和动态库的调用
       在连接时 + - L+库的路径+ -l 库名;如:

gcc  test.c -o one -L /home/lib -l libabc.so

四、c#生成动态库(vs2013)

         第一步:单击"文件"---->"新建项目"---->"类图"---->"确认"如图:

 

   第二步:在类里写个简单的方法,如:

 

   第三步:在"解决方案"右键,选择"生成解决方案B",如:

在Debug文件夹下回产生一个dll文件

五、动态库的调用

  第一步:在右键"解决方法","添加","新建项目","选择c#控制台程序"点击确定,如图:

   第二步:在新的项目里,右键点击"引用",点击"添加引用",在浏览里找到刚刚生层的动态库文件,如图

   第三步:在新项目里的.cs文件里,写个简单的调用,动态库里的类的方法,注意,要用using +命名空间名(刚刚动态库里的),如图

            第四步:在新建的项目里,右键,点击"设为启动项",如图:

然后就可以编译,启动了;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值