dll动态链接库简单入门

总结windows系统中vs2008编译环境下,创建dll然后使用dll非常简单(代码量最少,让你知道哪些是必要的代码)的一次感性尝试。


    dll定义:windows系统中用于实现函数共享的文件。文件内容是二进制代码,扩展名通常是.dll。
    创建:
        编译环境:vs2008英文版。
        1.新建dll空工程:菜单file->new->project->visual c++->win32->win32 console application->填写dll工程名字myDll->OK->next->DLL->empty project->finish
        2.新建dll工程的.cpp文件:在左侧solution explorer窗口下,右击source files->add->new item->visual c++->code->选c++ file(.cpp)->填写.cpp名字add->确认add->在add.cpp文件中定义add函数:
#include "myDll.h"
int add(int a, int b){  return a + b; }
        3.在左侧solution explorer窗口下,右击myDll工程名->properties->general->configuration type->static library(.lib)->确定。
//使用dll有两种方式,一是载入时动态链接,二是运行时动态链接,因为前者简单,所以采用前者。此时不生成myDll.dll,生成myDll.lib。
        4.新建myDll.lib输入库的.h文件:在左侧solution explorer窗口下,右击header files->add->new item->visual c++->code->选header file(.h)->填写.h名字myDll->确认add->在myDll.h文件中声明add函数:
extern "C" _declspec(dllexport) int add(int a, int b);  
//extern "C" 告诉编译器该函数按照C语言规范编译,并且动态链接时不用加函数名修饰符(如函数名前加下划线前缀),可以直接使用原函数名
//_declspec(dllexport)声明函数是导出函数
        5.按F7编译。

    使用:
        1.新建测试空工程:在左侧solution explorer窗口下,右击solution 'myDll'->add->new project->visual c++->win32->win32 console application->填写测试工程名字test->OK->next->console application->empty project->finish
        2.新建测试工程的.cpp文件:在左侧solution explorer窗口下,右击test工程的source files->add->new item->visual c++->code->选c++ file(.cpp)->填写.cpp名字test->确认add->在test.cpp文件中加入如下代码:
#include <iostream>
#include "..\myDll\myDll.h"       //包含dll的头文件
#pragma comment(lib, "..\\Debug\\myDll.lib")  //隐式链接
using namespace std;
int main(){
 cout<<add(1,2);
    return 0;
}
//使用方式一:载入时使用隐式动态链接,起始目录从工程当前目录开始。也可以在项目属性中设置库的显式动态链接。
//另一种使用方式是运行时使用动态链接(比较繁琐,见参考链接)
//动态链接.lib库文件和静态链接库文件不同,只存放dll的导出表,不含代码
        3.在左侧solution explorer窗口下,右击test工程名->set as startup project->按ctrl+F5,dos窗口显示3.
    优点:1.节省内存,所有进程可以共享内存中加载的dll程序,也因此减少代码量。2.升级程序无需重新编译重新安装,只更换dll即可。3.可供多种编程语言使用。
    补充阅读:所有Windows API函数都是以动态链接库形式提供。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值