VS2013添加外部动态库
来源:互联网 发布:淘宝联盟电脑版 编辑:程序博客网 时间:2024/04/30 16:53
转载自:http://blog.csdn.net/u010273652/article/details/25514577
创建动态库方法:
创建动态库是生成 .dll .lib 两个个文件
文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:DLLGenerator应用程序类型:DLL 附加选项:空项目
建立源文件dllgenerator.cpp(不需要主函数,只写你需要动态调用的函数)
建立头文dllgenerator.h(一定要把函数声明写好)
建立源文件dllmain.cpp(一定要包含#include<windows.h>)
- 下面的函数是VS2013自动生成,没生成复制即可。其实是在创建工程项目时不选空项目时候vs自动生成的,但不选空项目会产生很多其他文件和依赖项,本文教你建立最纯净的工程,注意包含window.h
建立源文件Source.def
- 建立方式如下图,选择 VisualC++ -> 模块定义文件(.def)
- 在此文件第一行引号中填你的项目名称即可,EXPORTS下面列出要生成的函数名称 格式:“名称 @序号”)
点击菜单栏 生成 -> 生成解决方案 或者 按Ctrl+F5
输出栏显示 创建库 DLLGenerator.lib 和 生成 DLLGenerator.dll
lib文件里面有对dll文件的描述,所以生成的dll文件不要改名称,否则lib文件和dll文件无法对应
在项目方案目录里,Debug文件夹中可以找到DLLGenerator.lib 和 DLLGenerator.dll, 把这两个文件和工程的头文件(dllgenerator.h)移动到一个空文件夹(E:\dlltest\DLL)中,以后你的项目用到此dll就包含这个目录,至此动态库创建完毕。
项目调用动态库方法如下:
调用动态库是调用 .dll .lib .h 三个文件
文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:DLLTestor
应用程序类型:控制台应用程序 附加选项:空项目
打开项目 -> 项目属性 -> 配置属性 -> VC++目录 -> 包含目录 加入DLLGenerator.h所在目录的绝对路径 (E:\dlltest\DLL),以分号间隔
打开项目 -> 项目属性 -> 配置属性 -> VC++目录 -> 库目录 加入DLLGenerator.lib所在目录的绝对路径 (E:\dlltest\DLL)
打开项目 -> 项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项 中填上DLLGenerator.lib(以分号间隔),点击右下角 应用 确定
工程调用dll时首先在工程文件目录中查找dll,找不到后在C:\Windows\System32 中找。所以我们自己项目简单调用dll时就把生成的dll文件复制到工程目录中,如果经常用可以把dll文件放到C:\Windows\System32中
新建源文件main.cpp
点击菜单栏,调试 -> 开始执行(不调试) 或者按F5
运行结果:
至此调用动态库成功。
---------------End-----------------
1、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。
2、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。
然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。
3、添加工程引用的dll动态库:把引用的dll放到工程的可执行文件所在的目录下。
0 0
- VS2013添加外部动态库
- QT5.5.1+VS2013+win764位添加USB外部库hidapi
- vs2013添加boost库
- vs2013生成动态库
- 【解决方案】VS2013外部工具中添加ildasm.exe
- 【解决方案】VS2013外部工具中添加ildasm.exe
- 动态添加外部样式到head部分
- js动态添加外部js(顶)
- VS2013创建动态链接库
- vs2013创建动态链接库
- vs2013创建dll动态库
- VS2013调用动态链接库
- vs2013+qt5.6添加qcustomplot报无法解析的外部符号
- Qt 添加外部库文件
- Java添加外部jar库
- VS20XX添加外部库引用
- Qt 添加外部库文件
- C/C++ VS2013 动态链接库详解
- VBS列出windows更新列表
- sql,group by的使用
- Android 进程保活招式大全
- PyQt5笔记 例子(三)—显示悬停信息
- libcurl error LNK2019: 无法解析的外部符号 __imp__IdnToAscii@20
- VS2013添加外部动态库
- 0057 找出数组中出现次数超过一半的数字
- Codeforces Round #367 (Div. 2)E. Working routine
- javaSctipt数组的reduce方法
- 如何编写一个好的makefile文档
- LIS hdu 5748 (Bellovin)
- hdoj1159Common Subsequence(LCS 最长公共子序列)
- DS18B20
- 使用OSGI+MQ的方式解决集中化运维问题