文档章节

VS2015建立dll导出库以及导出函数

l
 lovyu
发布于 2017/05/24 15:03
字数 300
阅读 3
收藏 0
点赞 0
评论 0

1、新建一个空的win32项目,运用程序类型选dll,附加选项选空然后完成。

2、在源文件里建立头文件和源文件可以放单独的目录下,(比如include目录)。

头文件代码如下:

#pragma once
#ifndef _ESBCONN_H_ 
#define _ESBCONN_H_ 

#ifdef  ESBCONN_DLL 
#define EXPORT_DLL _declspec(dllexport)
#else 
#define EXPORT_DLL _declspec(dllimport)
#endif 

class EXPORT_DLL EsbConn 
{
public:
 EsbConn(int _x, int _y);

public:
 void print();

private:
 int m_x;
 int m_y;
};

#undef EXPORT_DLL 

#endif 

 

源文件代码如下:

#include "EsbConn.h"
#include <iostream>

EsbConn::EsbConn(int _x, int _y)
 :m_x(_x), m_y(_y)
{

}

void EsbConn::print()
{
 std::cout  << "x:" << m_x  << "  y:" << m_y  << std::endl;
}

3、工程属性页配置,常规里配置输出目录(可配置lib文件目录供其他项目直接使用)及中间目录(编译产生的一些中间文件)。

4、工程属性页配置,在C\C++下的预处理器选项:预处理器定义新加:ESBCONN_DLL (头文件里的预定义。)

二、其他工程引用配置:

1、C\C++  附加包含目录:选择.h 文件所在目录如上面的clude.

2、链接器-》常规里附加库目录添加lib库文件目录。

3、 链接器-》输入添加....lib 文件。

4、拷贝dll

 

© 著作权归作者所有

共有 人打赏支持
l
粉丝 0
博文 2
码字总数 401
作品 0
常州
.dll,.lib,.def 和 .exp文件

简要的介绍一下在微软开发工具中(VC)静态链接库和动态链接库生成过程中出现的.dll .lib .def 和 .exp文件类型。windows平台上可执行文件可能是一个.exe文件也可能四个.dll文件。当然也有一...

晨曦之光 ⋅ 2012/04/13 ⋅ 0

VS2010 C++创建、调用DLL图解

以前做Java,这一段在捣鼓一个C++的项目,需要调用其他项目组做的DLL文件,现将创建和调用DLL的方法和步骤记录如下。 一、创建DLL 1、新建项目: Visual C++ -> Win32项目,名称:CnBlogsDLL ...

长平狐 ⋅ 2012/08/27 ⋅ 1

__declspec(dllimport)

我相信写WIN32程序的人,做过DLL,都会很清楚declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指...

开心303 ⋅ 2011/07/21 ⋅ 0

HP-Socket很好用,如果C格式回调函数增加一个HP-Socket对象指针使用会更方便

我用Visual Prolog调用C格式的dll,HP-Socket很好用,服务端性能也很好,赞一个。只是在不同的TCP端口,建立多个HP-Socket对象,如果采用统一的回调函数(在Visual prolog中,对象函数不允许...

crow188 ⋅ 2014/05/18 ⋅ 2

vc调用matlab生成的C++dll库总结。

实验室的一个项目需要调用matlab程序。经过再三考虑,决定使用vc调用matlab导出库的形式。而我主要负责与matlab程序结合的工作。以下是今天工作的简要总结。全当是个备忘吧。 1:在matlab中选...

长平狐 ⋅ 2012/10/08 ⋅ 0

在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试

在VS2015中先创建C#项目,然后再创建要编写的动态库DLL项目,这样做的好处是整个解决方案的编程环境是C#模式,这样就可以有很多智能的提示或快捷的编程方式在整个解决方案中都可以使用。 一:...

老朱教授 ⋅ 2017/11/26 ⋅ 0

MFC中使用DLL导出函数的问题

有时候在调用DLL里函数的时候会出现这样的问题: typedef void (WINAPI *FuncPro)(HWND , HWND& );//FuncPro lpproc = (FuncPro)GetProcAddress(hDll, "MyFunc"); 失败FuncPro lpproc = (Fun......

无奈的初弦 ⋅ 2013/12/27 ⋅ 0

在 Visual C++ 中 建 立 MFC 扩 展 DLL

有经验的Windows编程人员都逐渐放弃了WindowsSDK,而转向能为Windows内置的低级机制提供高级抽象的开发环境。这种转移的一个主要受益者是VisualC++,它依靠MFC库来提供WindowsAPI的面向对象的...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

HoloLens开发——C++ DLL封装及在win32、Unity、AR眼镜中调用情况

一、C++ Dll基础了解 动态链接库(dll)比较好的介绍在孙鑫《VC++深入详解》第十九章动态链接库中有详细介绍。主要涉及以下问题: 1.静态链接库与动态链接库的区别 https://blog.csdn.net/za...

haitianyunlan ⋅ 05/09 ⋅ 0

ORA-14048: 分区维护操作不能与其它操作组合

今天 fannairu 同学导入数据库时出现一个错误, 提示如下: IMP-00017: 由于 ORACLE 错误 14048, 以下语句失败: "ALTER INDEX "SYS_C009967" UNUSABLE ENABLE" IMP-00003: 遇到 ORACLE 错误 14...

sailtseng ⋅ 2012/06/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

服务网关过滤器

过滤器作用 我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会...

明理萝 ⋅ 12分钟前 ⋅ 1

【2018.06.21学习笔记】【linux高级知识 14.1-14.3】

14.1 NFS介绍 NFS服务全称是NetWork File System:网络文件系统,最早有sun公司开发的,4.0版本由Netapp公司开发,是基于RPC远程过程调用(Remote Procedure Call)协议的服务。 14.2 NFS服务...

lgsxp ⋅ 20分钟前 ⋅ 0

Day18 vim编辑模式、命令模式与练习

编辑模式 命令模式 :nohl 不高亮显示 :x与:wq类似,如果在更改文件之后操作,两者效果一样;如果打开文件,没有任何操作; :wq会更改mtime,但是:x不会。 练习题 扩展 vim的特殊用法 ht...

杉下 ⋅ 24分钟前 ⋅ 0

Enum、EnumMap、EnumSet

1、Enum 不带参数 public enum Car { AUDI { @Override public int getPrice() { return 25000; } }, MERCEDES { ......

职业搬砖20年 ⋅ 24分钟前 ⋅ 0

Java中的锁使用与实现

1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。 在Lock出现之前,java程序是靠synchronized关键字实现锁功能的,而Java SE5之后,...

ZH-JSON ⋅ 26分钟前 ⋅ 0

线程组和 ThreadLocal

前言 在上面文章中,我们从源码的角度上解析了一下线程池,并且从其 execute 方法开始把线程池中的相关执行流程过了一遍。那么接下来,我们来看一个新的关于线程的知识点:线程组。 线程组 ...

猴亮屏 ⋅ 27分钟前 ⋅ 0

相对路径和绝对路径

基本概念   文件路径就是文件在电脑中的位置,表示文件路径的方式有两种,相对路径和绝对路径。在网页设计中通过路径可以表示链接,插入图像、Flash、CSS文件的位置。   物理路径:物理路...

临江仙卜算子 ⋅ 31分钟前 ⋅ 0

消息队列属性及常见消息队列介绍

什么是消息队列? 消息队列是在消息的传输过程中保存消息的容器,用于接收消息并以文件的方式存储,一个队列的消息可以同时被多个消息消费者消费。分布式消息服务DMS则是分布式的队列系统,消...

中间件小哥 ⋅ 33分钟前 ⋅ 0

java程序员使用web3j进行以太坊开发详解

如何使用web3j为Java应用或Android App增加以太坊区块链支持,教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤器...

笔阁 ⋅ 34分钟前 ⋅ 0

vim编辑模式、vim命令模式

vim编辑模式 使用vim filename 进入的界面是一般模式,在这个模式下虽然我们能够查看,复制,剪切,粘贴,但是不能编辑新的内容,如何能直接写入东西呢?这就需要进入编辑模式了,从一般模式...

李超小牛子 ⋅ 36分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部