文档章节

vs2013创建和使用动态库

种地瓜
 种地瓜
发布于 2016/08/14 11:03
字数 365
阅读 744
收藏 0
点赞 0
评论 0

打开vs2013 ,文件-新建,取一个名字

我们这里创建一个空的项目吧

添加头文件MyDll.h

源文件

建立源文件dllmain.cpp,要包含window.h文件,这个是vs2013自动生成的,但是你在建立项目的时候,选择了空项目,所以就没有,如果没选择空项目就会有这个文件,但是他会包含很多的其他的依赖文件,这里都去除了,我们是要生成一个纯净的动态库,

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include <windows.h>
BOOL APIENTRY DllMain(HMODULE hModule,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
    )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

建立source.def

在此文件第一行引号中填项目名称就好了,EXPORTS下面表示要生成的函数名称 格式:“名称 @序号”)

生成解决方案,发现该项目目录下的Debug下生成了文件  dll   lib

  

2   项目调用库文件的用法

 以同样的方式生成项目,但这次不是选择dll了,控制台程序

将上面项目的头文件和生成的库文件复制到该项目来

建立自己的源文件UseDll.cpp  内容是

有时候需要经文件包含的目录和库文件添加进来

运行

测试成功了

如果我在库文件中这样写

生成的库文件再拿过来

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
种地瓜
粉丝 9
博文 170
码字总数 44807
作品 0
深圳
程序员
四种环境下编译生成nanomsg库

VS2013编译生成nanomsg库文件 因为工作中用到了nanomsg,又需要编译成库来使用,发现网上资料很少,所以做此记录。 编译准备,CMake工具软件和下载好的nanomsg源码包。我的是CMake 3.6.2,n...

容我三思兮 ⋅ 2017/04/14 ⋅ 0

Windows下通过Python 3.x的ctypes调用C接口

在Python中可以通过ctypes来调用动态库中的C接口,具体操作过程如下: 1. 使用vs2013创建一个加、减、乘、除的动态库,并对外提供C接口,code内容如下: math_operations.hpp: #ifndef TESTD...

fengbingchun ⋅ 04/19 ⋅ 0

VS 2015 - Win XP (v140_xp) 编译工具 ucrtbased.dll缺失

Visual Studio 2015 - Windows XP (v140_xp) 编译工具 ucrtbased.dll缺失 先写结论,最好不要使用VS2015-WinXP编译工具来编译VC++程序,因为你最终会发现,编译出来的程序如果是动态链接到运...

郝槟楠 ⋅ 01/08 ⋅ 0

C++中调用dll的两种方式

Windows下调用C++动态库,即dll文件有两种方式:隐式调用和显式调用。以下以VS2013为编译环境说明。假如有一个项目TestDLL,产生的可执行文件名为TestDLL.exe,在这个工程中调用mydll.dll,m...

smartstone_2015 ⋅ 2015/07/23 ⋅ 0

在VS2013中使用boost库遇到的问题及解决

最近的项目需要集成一个使用了boost库的开源库。原本应该是比较简单的工作,因为使用的是VS2013,而boost库是最新下载的1.60.0版本(注:写这篇文章时1.61.0刚好release),结果还是费了一点工...

SunLightJuly ⋅ 2016/05/17 ⋅ 0

关于vs2012/2013的C编译器生成的exe的向后兼容xp的问题

转自:http://blog.sina.com.cn/s/blog_5f2e119b0101s2uy.html 问题一:编译出来的exe在xp上面运行提示“不是有效的win32应用程序” 在vs2012/2013版本里面,其 自带的c编译器cl.exe,若直接...

薛蕊 ⋅ 2014/06/10 ⋅ 0

有熟悉vs测试框架的么

我们用的vs2013,新建测试项目时,有本地测试项目和托管测试项目,有什么区别,托管测试项目似乎不是cpp的原生语法,加载动态库,导入库中的函数。本地c 测试项目,我想讲测试方法导出到tfs时...

Ivnoidea ⋅ 2014/07/01 ⋅ 0

crank storyboard学习笔记(一)环境安装

如有问题请联系我,微信 814565668. 目标:用crank实现仪表盘的动态效果。 参考博客:http://blog.csdn.net/guokehello/article/details/51644891 他的代码没有验证,这里用的是软件带的sam...

大连瓦匠 ⋅ 01/30 ⋅ 0

Stackful 协程库--libgo

libgo 是一个使用 C++ 编写的协作式调度的stackful协程库, 同时也是一个强大的并行编程库。 设计之初是为高并发分布式Linux服务端程序开发提供底层框架支持,可以让链接进程序的同步的第三方...

Li_Mr ⋅ 2016/01/25 ⋅ 6

boost静态链接库和c++/clr不兼容问题:未能加载文件或程序集,不是有效的Win32应用程序。

转自:http://blog.csdn.net/h807892124/article/details/51326552 项目上遇到的问题:c++编写的类使用托管c++包装成dll提供给c#项目使用。c++需要使用boost,clr,项目目标平台都是win32/x...

lanybass ⋅ 2016/07/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 6分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

OSC_cnhwTY ⋅ 13分钟前 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 15分钟前 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 23分钟前 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 24分钟前 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 53分钟前 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 今天 ⋅ 0

Nginx服务架构初探(四):nginx服务器的rewrite功能

nginx服务器的rewrite功能 1.nginx后端服务器组的配置 1>upstream name {…} name是给服务器组限的组名 2>server address [parameters]; address为服务器地址 parame......

余温灬未存 ⋅ 今天 ⋅ 0

layer.prompt使文本框为空的情况下也能点击确定

最近一直在使用layui,但是用到弹出层layer.prompt时,如果文本框是空的话点击确定没有反应,不能向下执行。 但是我又需要空值,看看我原来的代码。 123456789 layer.prompt...

孟飞阳 ⋅ 今天 ⋅ 0

Linux普通文件压缩工具gzip、Bzip2、xz

第六章 文件压缩和打包 6.1 压缩打包介绍 Linux环境常见压缩文件类型: .zip,.gz,.bz2,.xz, .tar.gz,.tar.bz2,.tar.xz 压缩打包的目的 方便文件传输 节省磁盘空间 减少传输花费的时间 ...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部