文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C++中declspec(dllexport)和declspec(dllimport) 的用法介绍

2024-04-02 19:55

关注

一、创建动态文件

1.添加头文件dll.h,并输入以下代码:

#ifdef DLL_EXPORTS                        //如果在工程里已经添加预定义宏DLL_EXPORTS
#define DLLEXPORT __declspec(dllexport)   //那DLLEXPORT就指代__declspec(dllexport) 用于dll的导出
#else                                     //当工程中不包含DLL_EXPORTS预定义时
#define DLLEXPORT __declspec(dllimport)   //DLLEXPORT 就指代__declspec(dllimport) 
#endif

DLLEXPORT int add(int a, int b);//导出函数用
DLLEXPORT void foo();//导出函数用
class DLLEXPORT  __declspec(dllexport) a {};//导出类用 

2.在项目的属性中的预处理其中定义DLL_EXPORTS,其他项目则不要定义。

3.在dll.cpp文件中实现方法:

#include "dll.h"

int add(int x,int y)
{
    return x+y;
}

4.编译生成,则工程的debug目录下就生成了.dll和.lib文件

二、创建调用动态文件

1.新工程中,创建添加源文件calldll.cpp,并输入以下代码:

#include "dll.h"
#include <iostream>

int main()
{
    int z;
    int x=1, y=2;
    z=add(x,y);
    std::cout<<z<<std::endl;
}

2.工程属性进行以下设置:

(1)C/C++:“附加包含目录”,添加dll.h头文件目录;

(2)链接器--常规: “附加库目录”,添加上面生成的dll.lib文件的目录;

(3)链接器--输入:“附加依赖项”,添加上面生成的dll.lib文件。

(4)代码中开始位置手动引用静态库: #pragma comment(lib,"..\Testlib\Test.lib")

注:#pragma comment(lib,"..\upgradeLib\RKUpgrade.lib")

3.按照如上操作,即可成功生成并运行。即完成dll动态库的调用。

注:

如果编译通过后用行,提示丢失dll.dll文件的错误信息。
解决:将dll.dll放在和exe同一目录下或放在c:\windows\system32目录下(Win64位操作系统且dll.dll不是64位而是32位的话放在c:\windows\syswow64目录下)

到此这篇关于C++中declspec(dllexport)和declspec(dllimport) 用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯