C++创建和使用动态链接库
一个简单的动态链接库的生成和调用例子,太过简单,大神请绕道。
一、创建动态链接库
使用vs创建工程选择动态链接库。
在项目中创建源文件和头文件,并在文件中添加以下代码。
在头文件中添加以下代码
// dlltest.h 头文件,使用动态链接库时需要包含头文件 #pragma once
#ifdef __DLLEXPORT
#define __DLL_EXP _declspec(dllexport) // 导出函数 - 生成dll文件时使用
#else
#define __DLL_EXP _declspec(dllimport) // 导入函数 -使用dll是使用
#endif // __DLLEXPORT // 判断是否是c++
#if defined(__cplusplus)||defined(c_plusplus)
extern "C"
{
#endif
__DLL_EXP int add(int a, int b);
__DLL_EXP int sub(int a, int b); #if defined(__cplusplus)||defined(c_plusplus)
}
#endif
在源文件文件中添加以下代码
// dlltest.cpp #include<stdio.h>
#include"dlltest.h"
#include"pch.h" int add(int a, int b)
{
return a + b;
} int sub(int a, int b)
{
return a - b;
}
在工程属性,
C/C++ => 预处理器 => 预处理定义中添加预定义宏__DLLEXPORT.在工程属性,
C/C++ => 预编译头 => 预处编译头选择不使用预编译头。编译生成dll文件和lib文件(如果没有生成lib文件,需要在工程中添加一个Source.def文件,内容为LIBRARY)。
二、使用动态链接库
1. 使用c++调用动态链接库
新建一个c++工程,包含
dlltest.h头文件,并引用生成的lib文件。添加源文件
testcpp.cpp,在源文件中输入以下代码:#include <iostream>
#include"dlltest.h" int main()
{
printf("test cpp\n");
std::cout << "Hello World!\n";
printf("3+2 = %d\n", add(3, 2));
printf("3-2 = %d\n", sub(3, 2));
}
编译,运行即可调用上面生成的动态链接库。
2.使用c调用动态链接库
新建一个c语言工程,包含
dlltest.h头文件,并引用生成的lib文件。添加源文件
testc.c,在源文件中输入以下代码:// testc.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <stdio.h>
#include "dlltest.h" int main()
{
printf("test c\n");
printf("3+2 = %d\n", add(3, 2));
printf("3-2 = %d\n", sub(3, 2));
}编译,运行即可调用上面生成的动态链接库。
C++创建和使用动态链接库的更多相关文章
- 创建和使用动态链接库 (C++)
创建和使用动态链接库 (C++) 转载:http://msdn.microsoft.com/zh-cn/library/ms235636.aspx 此分步演练演示如何创建用于 C++ 应用的动态链接库 ...
- 【转载】创建和使用动态链接库 (C++)
原文:http://blog.csdn.net/handforcpp/article/details/3478254 也可参考MSDN: 演练:创建和使用动态链接库 (C++) 我们将创建的第一种类型 ...
- VS2010创建和调用动态链接库
当我们开发一个产品的时候,我们并不想把源码公布给对方,除了给对方提供exe可执行文件外,我们还可以生成动态链接库,供程序调用,方便二次开发. 下面我将简单梳理一下如何创建和调用动态链接库,方便大家程序 ...
- 演练:创建和使用动态链接库 (C++)
我们将创建的第一种类型的库是动态链接库 (DLL). 使用 DLL 是一种重用代码的绝佳方式. 您不必在自己创建的每个程序中重新实现同一例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它 ...
- vs2010创建和使用动态链接库(dll)
本文将创建一个简单的动态链接库,并编写一个应用台控制程序使用该动态链接库,并提出了与实现相关的几个问题,供初学者交流. 本文包含以下内容: 创建动态链接库项目 向动态链接库添加类 创建引用动态链接库的 ...
- Qt创建和使用动态链接库
一.创建共享库 1.新其他建项目,选择C++库 2.选择共享库,并取项目名称,单击下一步.这里取名位mylib 3.按默认配置单击下一步至模块选项,选择所需支持的模块.这里勾选Qtcore和QtGui ...
- vs2010 C++创建和使用动态链接库(dll)
一.用C++创建动态链接库项目: 1.打开Microsoft Visual Studio 2010,选择File->New->Project. 2.在NewProject中选择Inst ...
- VC++ 6.0如何创建与调用动态链接库
原文:http://blog.csdn.net/wanghaihao_1/article/details/51098451 1.静态链接库与动态链接库区别: 静态链接库:lib中的指令被直接包含在最终 ...
- Windows下VS2013创建与使用动态链接库(.dll)
一.创建动态链接库文件 ** 1.打开VS2013,选择文件,新建工程 2.选择新建W32控制台应用程序,这里将工程名改为makeDLL 3.在应用程序类型中选择DLL,点击完成 4.完成以上步 ...
随机推荐
- [转]Maven 国内源配置(2019/2/14)
原文地址:https://segmentfault.com/a/1190000018147680 新年开工后要开始新的项目,但是发现一些项目的依赖没有在阿里仓库Central或Public源之中,项目 ...
- WdatePicker 时间插件
1.下载地址:链接:https://pan.baidu.com/s/1ggusfZX 密码:gu22 常用法: <input type="text" class=" ...
- jdk1.7 64位官方下载
平时要新装一个系统环境,或者下载最新的jdk,就需要到oracle官网去下载一个jdk,而目前生产环境都是1.7的环境下开发完成的,需要下载1.7版本的jdk,oracle官方网站的默认下载页面是1. ...
- PHP 相关性系数计算
相关系数公式 参考:https://baike.baidu.com/item/相关系数 PHP 实现代码 public static function calc($list) { $cv = []; ...
- mysql全文索引:fulltext
fulltext全文索引 要使用全文索引,不仅需要把某个字段的索引类型设置为fulltext,还需要修改mysql配置文件: [mysqld] ft_wordlist_charset #表示词典的字符 ...
- Oracle:时间字段模糊查询
需要查询某一天的数据,但是库里面存的是下图date类型 将Oracle中时间字段转化成字符串,然后进行字符串模糊查询 select * from CAINIAO_MONITOR_MSG t WHERE ...
- 修改jar的.class文件,并重新打包
使用javassist修改.class文件,并重新打包 Javassist是一款字节码编辑工具,可以直接编辑和生成Java生成的字节码,以达到对.class文件进行动态修改的效果.熟练使用这套工具,可 ...
- harbor的安装和简单使用【h】
安装docker的私有仓库, 利用vmware提供的harbor工具, 参考Docker 私有仓库方案比较与搭建, Harbor安装 -- 企业级Registry仓库 2.2harborProject ...
- 【视频开发】【Live555】摄像头采集,264编码,live555直播(0)
参看 有关live555 1.首先需要修改live555,定义从 内存中直接获取source而不是从文件读取source的类. 自己实现的类命名为 H264FramedLiveSource /* ...
- python爬虫1
1 网页结构 html:超文本标记语言------->类似人的鼻子耳朵,长在那里,大体骨架就是那个样子 css:层叠样式表------->这个是外观的深化,比如贴个双眼皮,橙色眼睛... ...