zoukankan      html  css  js  c++  java
  • 如何在C++程序中调用dll文件

    前言:首先做一些基础操作,新建一个dll文件

    1.先新建项目–>win 32项目(比如命名为testDLL)–>dll(选中空项目)–>完成。 
    2.新建一个文件,命名为Add.cpp,完成如下代码:

    #define DLLEXPORT extern "C" __declspec(dllexport)
    
    DLLEXPORT int sum(int a, int b) 
    {
        return a + b;
    }

    3.新建一个头文件

    int sun(int,int);

    1.动态调用dll库

    1.1新建一个控制台程序-> 空项目

    1.2添加cpp和dll文件进入工程或者在工程属性->VC++目录->添加dll文件的目录(大概是哪个都行)

    1.3工程属性->常规->字符集->使用多字节字符集

    1.4 在cpp文件中写入demo

    #include <iostream>
    #include <windows.h>
    /*
    Windows头文件中包含可以加载DLL的函数。 
    */
    typedef int(*ptrSub)(int, int);
    /*
    在调用DLL函数之前,要定义函数指针,用来调用函数。
    可以看出,函数指针的类型与DLL中的要一致。
    */
    HMODULE hMod = LoadLibrary("testDLL.dll");
    /*
        调用LoadLibrary函数加载DLL文件。加载成功,hMod指针不为空。
        这里也可以是一个地址加文件名
    */
    int main()
    {
        if (hMod != NULL) 
        {
            /*
            如果加载成功,则可通过GetProcAddress函数获取DLL中需要调用的函数的地址。
            获取成功,sum指针不为空。
            */
            ptrSub sum = (ptrSub)GetProcAddress(hMod, "sum");
            if (sum != NULL)
            {
                std::cout << "10 + 6 = " << sum(10, 6) << std::endl;
                /*获取地址成功后,通过sum调用函数功能。*/
            }
            FreeLibrary(hMod);
            /*在完成调用功能后,不在需要DLL支持,则可以通过FreeLibrary函数释放DLL。*/
        }
    }
  • 相关阅读:
    题解:luoguP1070 道路游戏(DP)
    题解:luoguP2577【ZJOI2005】午餐(DP)
    题解:bzoj1801: [Ahoi2009]chess 中国象棋
    题解:bzoj1878: [SDOI2009]HH的项链
    SpringBoot静态资源文件 lion
    简要的Log4Net 应用配置
    Web Service 初级教程
    log4Net 动态改变写入文件
    Ornament 类型资源权限
    JQuery 引发两次$(document).ready事件
  • 原文地址:https://www.cnblogs.com/ScarecrowMark/p/11249303.html
Copyright © 2011-2022 走看看