添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
逆袭的斑马  ·  Git遇到hint: Waiting ...·  2 年前    · 
谦逊的水煮肉  ·  Angular4 ...·  2 年前    · 
善良的煎饼果子  ·  angular - Uncaught ...·  2 年前    · 

解析VC中创建DLL,导出全局变量,函数和类的深入分析

作者:

本篇文章是对VC中创建DLL,导出全局变量,函数和类进行了详细的分析介绍,需要的朋友参考下
一.创建DLL
1.在VC中新建一个Win32空项目MathLib;
2.添加预编译头文件stdafx.h,定义导入导出控制符号:
复制代码 代码如下:

//stdafx.h
#pragma once
#define MATHLIB_EXPORT

3.添加包含要导出的全局变量,函数和类的头文件MathLib.h:
复制代码 代码如下:

//MathLib.h
#pragma once

#ifdef MATHLIB_EXPORT
#define MATHLIBAPI __declspec(dllexport)
#else
#define MATHLIBAPI __declspec(dllimport)
#endif

//macro
#define PI 3.14149

//Global variable
extern MATHLIBAPI int GlobalVariable;

//Function
MATHLIBAPI int Add(int a,int b);

//Class
class MATHLIBAPI Math
{
public:
int Multiply(int a,int b);
};

4.添加所导出元素的实现文件MathLib.cpp
复制代码 代码如下:

//MathLib.cpp
#include "stdafx.h"
#include "MathLib.h"

int GlobalVariable = 100;

int Add(int a,int b)
{
return a+b;
}

int Math::Multiply(int a,int b)
{
return a*b;
}

二,测试所创建的DLL
测试代码:
复制代码 代码如下:

#include "stdafx.h"
#include <iostream>
using namespace std;

#include "../MathLib/MathLib.h"
#pragma comment(lib,"../Debug/MathLib.lib")

int _tmain(int argc, _TCHAR* argv[])
{
cout<<"Pi = "<<PI<<endl;

cout<<"GlobalVariable = "<<GlobalVariable<<endl;

int a = 20,b = 30;
cout<<"a="<<a<<", "<<"b="<<b<<endl;
cout<<"a+b = "<<Add(a,b)<<endl;

Math math;
cout<<"a*b = "<<math.Multiply(a,b)<<endl;

return 0;
}

您可能感兴趣的文章:
  • Qt 信号自定义槽函数的实现
    Qt 信号自定义槽函数的实现
    2021-11-11
  • C++和C中const的区别详解
    C++和C中const的区别详解
    2021-11-11
  • 基于matlab对比度和结构提取的多模态解剖图像融合实现
    基于matlab对比度和结构提取的多模态解剖图像融合实现
    2021-11-11
  • 详解C++中的const和constexpr
    详解C++中的const和constexpr
    2021-11-11
  • C/C++ Qt StatusBar底部状态栏应用教程
    C/C++ Qt StatusBar底部状态栏应用教程
    2021-11-11
  • C++ 路径中./、../、/代表的含义
    C++ 路径中./、../、/代表的含义
    2021-11-11
  • OpenCV reshape函数实现矩阵元素序列化
    OpenCV reshape函数实现矩阵元素序列化
    2021-11-11
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号