文档章节

vs2013创建和使用动态库

种地瓜
 种地瓜
发布于 2016/08/14 11:03
字数 365
阅读 760
收藏 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
博文 177
码字总数 45450
作品 0
深圳
程序员
私信 提问
四种环境下编译生成nanomsg库

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

容我三思兮
2017/04/14
0
0
Windows下通过Python 3.x的ctypes调用C接口

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

fengbingchun
04/19
0
0
VS 2015 - Win XP (v140_xp) 编译工具 ucrtbased.dll缺失

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

郝槟楠
07/03
0
0
关于vs2012/2013的C编译器生成的exe的向后兼容xp的问题

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

薛蕊
06/26
0
0
有熟悉vs测试框架的么

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

Ivnoidea
2014/07/01
85
0

没有更多内容

加载失败,请刷新页面

加载更多

Deepin 安装wireshark抓包工具

一、关于deepin和wireshark deepin目前已经发展到15.8了,开发Android毫无压力,在四个月的使用时间里,已经非常习惯了。目前想处理一些网络问题,因此尝试在deepin上安装一个抓包工具。dee...

IamOkay
10分钟前
0
0
Docker镜像仓库服务-Nexus

建立云原生集群系统,建立自己的私有Docker镜像仓库必不可少。一方面可以加快多节点部署容器镜像的下载速度,另一方面是为了安全(容器里存储有系统所有的信息、包括密码、数据库等等,切记不...

openthings
22分钟前
1
0
127.0.0.1 和 0.0.0.0 地址的区别

1. IP地址分类 1.1 IP地址表示 IP地址由两个部分组成,net-id和host-id,即网络号和主机号。 net-id:表示ip地址所在的网络号。 host-id:表示ip地址所在网络中的某个主机号码。 即: IP-a...

华山猛男
今天
19
0
解决Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle.

把 总项目 下的 build.gradle 中的 两个 jcenter() 用 maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/’} 代替。...

lanyu96
今天
4
0
基于redis的分布式锁

redisson提供了基于redis的分布式锁实现方式,本文就尝试了下锁的使用方式。Redisson同时还为分布式锁提供了异步执行的相关方法,第二节执行介绍。 一、可重入锁验证 同一个jvm里面同一线程的...

noob_chr
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部