zoukankan      html  css  js  c++  java
  • 库(静态库和动态库)

    程序运行的四个阶段:预处理,编译,汇编,链接

    静态库(lib):在链接阶段,将代码完整的拷贝到可执行程序

    动态库(dll):在链接阶段,将引入库(.lib,存储的为函数名和位置)拷贝到可执行程序

    一 . 静态库:
    以C语言的形式生成库

    .h中

    extern "C" int add(int ,int);
    extern "C" int sub(int ,int);

    二. 测试静态库:(将.h和.lib放入)

    .h

    #ifdef __cplusplus//c++程序员用c的方式打开
    extern "C" int add(int ,int);
    extern "C" int sub(int ,int);
    #else //c的程序员直接打开
    int add(int ,int);
    int sub(int ,int);
    #endif

    源.cpp

    #include <iostream>
    #include "stdafx.h"//声明
    using namespace std;
    
    #pragma comment(lib,"静态库.lib")//在链接阶段,导入静态库(方法一)
    int main()
    {
        cout<<add(3,4)<<endl;
        system("pause");
        return 0;
    }

    导入静态库(方法二):右键->属性->链接器->输入->静态库.lib

    三. 动态库:

    两种导出方式:
    1. 源文件右键添加新建项 代码 模块定义文件
    LIBRARY "动态库.dll"
    EXPORTS
    add @1
    sub @2

    2. 在要导出的函数位置前加_declspec(dllexport)

    四 . 测试动态库(导入.lib和.dll(.dll要与.exe在同一目录文件下))

     两种加载方式:

    1.隐式加载:#pragma comment(lib,"0305动态库.lib")

    #include <iostream>
    #include "mydll.h"
    using namespace std;
    
    //引入库 --隐式加载
    #pragma comment(lib,"0305动态库.lib")
    
    int main()
    {
        cout<<add(4,6)<<endl;
        system("pause");
        return 0;
    }

    2.显示加载

    #include <iostream>
    #include <Windows.h>
    using namespace std;
    
    typedef int (*PFUN)(int,int);
    
    int main()
    {
        //显示运行时加载
        //1.加载库
        HMODULE  hmodule = LoadLibrary(L"../debug/0305动态库.dll");
        //2.获得库函数的地址
        if(hmodule)
        {
            PFUN pfun = (PFUN)GetProcAddress(hmodule,"add");
            cout<<(*pfun)(2,3)<<endl;
            //3.卸载库
            FreeLibrary(hmodule);
        }
        
        system("pause");
        return 0;
    }

    更新:

    只更新函数实现时,只需将.dll重新复制

    更改函数名和导出方式时,需要将.dll和.lib重新复制

  • 相关阅读:
    数据增强
    变态跳台阶
    跳台阶
    数据分析--简单回测框架开发
    数据分析--羊驼交易法则(选股)
    数据分析--动量策略vs反转策略(选股)
    数据分析--PEG策略(选股)
    数据分析--布林带策略(择时)
    数据分析--均值回归策略(选股)
    数据分析--单因子选股策略、多因子选股策略(选股)
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/8515462.html
Copyright © 2011-2022 走看看