zoukankan      html  css  js  c++  java
  • OS基础:动态链接库(一)

    动态链接库(一)

    1.新建文件夹,命名lpt

    2.用vc6.0建立一个空工程(Win 32 Dynamic-Link Library),名称:lptDll1

    3.新建C++文件,命名:lptDll1;新建.h文件,命名:lptDll1.;新建在工程内新建文本文件,命名:lptDll1.def(注意.def后缀一定要写在名称内)

    4.lptDll1.h的代码:

     

    1 void lptDllTest1();
    2 void lptDllTest2();

     

    5.lptDll1.cpp的代码:

     1 #include<iostream.h>
     2 #include "lptDll1.h"
     3 
     4 void lptDllTest1()
     5 {
     6     cout<<"这是我第一个测试Dll静态加载函数!"<<endl;
     7 }
     8 
     9 void lptDllTest2()
    10 {
    11     cout<<"这是我第二个测试Dll静态加载函数!"<<endl;
    12 }

     

    6.lptDll1.def的代码:

    1 LIBRARY lptDll1
    2 EXPORTS
    3     lptDllTest1    @1  //@1是序号  //lptDllTest1是函数
    4     lptDllTest2    @2

     

    7.编译——执行

     

    点击“取消”

    8.新建另一个工程(Win 32 Console Application),名称:lppDll1Test。新建C++文件,命名:lptDll1Test

    lptDll1Test代码如下:

    1 #include"lptDll1.h"
    2 void main()
    3 {
    4     lptDllTest1();
    5     lptDllTest2();
    6 }

     

    当点击编译发现该库未导入当然不可行

     

    9.找到lptDll1文件夹的子目录中的刚刚执行完毕的debug文件内把lptDll1.lib以及lptDll1.dll复制到lptDll1Test的目录下;同样地,lptDll1文件夹中的lptDll1.h也复制到lptDll1Test的目录下

    再次编译,此时会提示找不到这两个函数

     

    10.该库仍然未成功导入,那该如何呢?

    找到“工程”—“设置”—“链接/link”,在对象/库模块添加lptDll1.dll动态链接库

    再次编译,成功。调用这两个函数,并输出:

    这是我第一个测试Dll静态加载函数!
    这是我第二个测试Dll静态加载函数!
    Press any key to continue

     

     

  • 相关阅读:
    SignalR客户端和服务端编写,winfrom端
    SQL 发送邮件msdb.dbo.sp_send_dbmail
    Stimulsoft打印内容横向,变成竖向,解决方法
    Chrome浏览器所有页面崩溃
    SQL存储过程直接传表
    c#SignalR一次发送最大数据量
    c#USB扫描枪,防止输入框手动输入
    SQLPrompt_9.5.5.9830破解版含注册机_永久激活不掉线
    SQL快捷键设置
    USB HDI 通信
  • 原文地址:https://www.cnblogs.com/imLPT/p/3682040.html
Copyright © 2011-2022 走看看