一,生成dll 并调用

1 新建工程

2 Copy 生成的dll 到工程根目录/dll生成到这个目录

3 Copy生成dll的头文件到工程根目录

4 新建工程cpp中添加生成dll的头文件

5, 添加对应的lib文件,否则无法解析

可以考虑这种方式

#pragma comment(lib,"Simpledll.lib")

或者在调用dll工程的属性里添加

**********************************************************

Calcuate.h

#pragma once
#define _DLLEXPORT __declspec(dllexport)
//open background music
#include<windows.h>
#include <mmsystem.h>
#include<dsound.h>
#pragma comment(lib, "WINMM.LIB")
//Michael Wang 20171027extern  __declspec(dllexport) int calAdd(int a, int b);__declspec(dllexport) double calSubtract(double a, double b);__declspec(dllexport)
void printPoem();_DLLEXPORT
void openBackGroundMusic();_DLLEXPORT
void closeBackGroundMusic();

Calcuate.cpp

#define  _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <Windows.h>
#include "Calcuate.h"using namespace std;int calAdd(int a, int b)
{int c = a + b;return c;
}double calSubtract(double a, double b)
{double result  = a - b;return result;}void openBackGroundMusic()
{//这一行是打开音频,你要播放音频肯定要先打开文件的,并将其命名为mysong.mciSendString(TEXT("open ButterflyLovers.mp3 alias mysong"), NULL, 0, NULL);mciSendString(TEXT("play mysong repeat"), NULL, 0, NULL);//打开报警音}void closeBackGroundMusic()
{Sleep(5000);mciSendString(TEXT("close mysong"), NULL, 0, NULL);
}void printPoem()
{char str[] = "How do I love thee? Let me count the ways.\n\吾爱汝深深几许?今且听吾细数之\I love thee to the depth and breadth and height\n\欲言情深深似海,欲状情厚更无垠\My soul can reach, when feeling out of sight\n\此心幽幽不可名,此情切切绕魂灵\For the ends of Being and ideal Grace.\n\奉祷三生冀神佑,执手一诺许终生\I love thee to the level of everyday's\n\思君不见日难度,柔情入盏饮朝暮\Most quiet need, by sun and candlelight.\n\于昼不可无金乌,是夜岂能少龙烛\I love thee freely, as men strive for Right;\n\吾心真率无犹疑,坦若君子承浩气\I love thee purely, as they turn from Praise.\n\吾爱纯粹无污秽,洁如赞歌携颂回\I love thee with the passion put to use\n\此情灼灼如烈焰,为汝独燃无余烬\In my old griefs, and with my childhood's faith.\n\倘若迟暮生悲痛,梦归童乡拾彼心\I love thee with a love I seemed to lose\n\曾疑应舍白头意,仿若迷徒失圣心\With my lost saints, --I love thee with the breath,\n\而今终得汝相惜,一呼一吸两相系\Smiles, tears, of all my life!--and, if God choose,\n\焕彩重描笑与泪,生生世世不相离\I shall but love thee better after death.\n\死后神明若问起,有过之而无不及\n";//cout << str << endl;char s[3] = { 0 };char over[] = "。";  //中文的句号字符串cout << endl << endl << "    ";//逐个输出汉字for (int k = 0; k < strlen(str); k += 2){printf("%c%c", str[k], str[k + 1]);  //每两个字符表示一个汉字if (k < 200){Sleep(300-k);}else{Sleep(50);}sprintf(s, "%c%c", str[k], str[k + 1]);  //把一个中文的字符转化存到s中//sprintf_s(s, "%c%c", my[k], my[k + 1]);if (strcmp(s, over) == 0)  //字符串对比是否是句号,如果是则换行{printf("\n");}}}

activeateDLL.cpp

#include <iostream>
#include "Calcuate.h"using namespace std;void main()
{int a = 10;int b = 100;int c = calAdd(a, b);cout << "c is " << c << endl;cout << "--------------------------" << endl;double a1 = 10.1, b1 = 100.10;double c1 = calSubtract(a1, b1);cout << c1 << endl;//cout << calAdd(10, 100);openBackGroundMusic();cout << "\t\t这是英国诗人伊丽莎白·芭蕾特·布朗宁的诗\n"<< "\t\t\tHow do I love thee\n" << endl;printPoem();closeBackGroundMusic();system("pause");}
**********************************************************

二,可以参考 vs2010下动态库的创建及调用

三,为了方便可以把生成dll和调用dll的工程都写在一个项目里面,

1,用哪个只需要设置哪个为启动项即可

2,可以在一个工程上新建另一个工程

3,两个写到一起便于调试

4,可以把生成的调用的通过下面的方式关联起来,便于调式。

不然,即使将生成的dll放置调用的工程下面,每次修改后最要重新生成dll,再调用。

如果像下面这样关联起来,修改后就直接变化了在调用的工程中。

四,如果新建的工程是exe,也可以修改为生成dll

c++ 创建并调用dll相关推荐

  1. C#创建和调用DLL

    一.写在前面 C# 语言是一种简单但功能强大的编程语言,用于编写企业应用程序. C# 语言从C和 C++语言演化而来,在语句.表达式和运算符方面使用了许多 C++ 功能. C# 语言在类型安全性.版本 ...

  2. C++ Builder创建和调用dll中的资源

    程序开发中经常会用到一些图标.图片.光标.声音等,我们称它们为资源(Resource).当多个窗口用到同样的资源时,可以将这些公共的资源放到一个dll文件里调用,这样,由于定位资源比在磁盘中定位文件花 ...

  3. 利用QT5.9创建并调用DLL(基于Visual Studio 2015)

    最近在做QT相关的项目,需要用到DLL,看了下网上的有关QT创建DLL的教程,大多数都是在QT Creator里面的.基于Visual Studio的非常少,这里就记录下自己走过的那些坑. 准备工作. ...

  4. MFC创建、调用Dll的方法

    1. MFC创建DLL 1. 打开VS,新建项目,选择"MFC动态链接库",点击"下一步". 2. 设置项目名,路径等参数,点击"创建". ...

  5. VS2019-C++创建和调用DLL动态链接库(傻瓜式教程)

    前言:查了好久好久网上的资料C++调用动态链接库,试了好多方法(直接创建DLL.空项目创建的)都多多少少有些问题,最后自己不断摸索着成功了,还是很开心的,接下来把最清晰的步骤分享给大家(C++新人,有 ...

  6. dll创建及调用(VS2005)

    最近改用vs2005做项目,主要写算法类库,下面贴一个基础内容,如何使用VS2005创建及调用dll 贴个链接,验证过可以正确运行:http://blog.csdn.net/zyhui65/artic ...

  7. vs2008 C++创建和调用标准DLL

    为了共享代码,需要生成标准的dll,本文将介绍在vs2008 C++生成及调用dll. 一.生成DLL 生成一个名为FunDll的dll文件,对外函数为addl. step1:vs2008 环境下,文 ...

  8. Qt DLL总结-创建及调用QT的 DLL

    目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...

  9. Qt DLL总结【二】-创建及调用QT的 DLL

    目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...

  10. 动态链接库DLL创建及导出函数、调用DLL

    1.动态链接库(dll)概述 没接触dll之前觉得它很神秘,就像是一个黑盒子,既不能直接运行,也不能接收消息.它们是一些独立的文件,其中包含能被可执行程序或其他dll调用来完成某项工作的函数,只有在其 ...

最新文章

  1. AI芯片加速图像识别
  2. 使用Canu对三代测序进行基因组组装
  3. 深入理解js的执行机制
  4. 关于分页插件PageHelper不起作用的问题
  5. 进击的UI------------网络判断
  6. 【wpf WebBrowser 清空网站的CookieSession 清空用户登录状态】
  7. linux github中文官网,GitHub使用简介
  8. Time除了监控程序运行时间还能干这个?
  9. cartographer的一些结果
  10. gradle下载地址
  11. H5+APP安卓原生插件开发+离线打包
  12. 双网卡电脑同时访问内外网设置静态路由表
  13. 对不起,我不是你爸爸
  14. Git还能这样玩?居然被他玩出了新花样
  15. 百度Java后端:MySQL索引老大难问题,精讲总结
  16. VB.net写的音乐播放器,带百度翻译歌词
  17. Canvas+html+css+position定位
  18. CdTe量子点及与牛血清蛋白的偶联/CdTe量子点与CLV3信号多肽片段偶联/GSH-CdTe量子点与溶菌酶的偶联
  19. 基于eclipse的android项目实战—博学谷(新功能四)签到
  20. 高等数学上册思维导图

热门文章

  1. xp电脑多少位怎么看_怎么看电脑是32位还是64位
  2. adb 启动app_app常见性能测试点之响应时间
  3. python 数据分析论文_用Python数据处理分析入门必备系列文章:基本类型与运算...
  4. c语言形式参数若为b 4,4月全国计算机等级二级C笔试考试题目
  5. #Pragma 用法总结
  6. iOS开发之画图板(贝塞尔曲线)
  7. 辽宁移动客服呼叫中心两级质检管理效果佳
  8. MSR系列路由器DAR功能的配置
  9. 哈佛大学凌晨4点半的景象
  10. Python单元测试框架之pytest 1 ---如何执行测试用例