一、构建动态链接库(dll.dll dll.lib dll.h)

说明: .dll 是在执行程序是调用  .lib 是在连接程序是调用  .h是在编译程序时调用

1.头文件(声明导入函数):_declspec(dllimport) int add(int a,int b);//(头文件不参加.dll文件的生成)

2.cpp文件(定义导出函数):_declspec(dllexport) int add(int a,int b){return a+b;}

3.结果得到.dll .lib .h三个文件

二、示例程序

1、头文件dll

#ifdef DLL_API

#else

#define DLL_API  

// 将DLL_API定义为空;动态和静态都是可用的   在动态链接库中#define DLL_API _declspec(dllimport)可用,静态不行

#endif

DLL_API int add(int a,int b);

DLL_API int subtract(int a,int b);
class DLL_API Point { public: int product(int a,int b);//乘积 };

2、cpp文件

#define DLL_API _declspec(dllexport)

#include "pcl.h"

int add(int a,int b){return a+b;}
int subtract(int a,int b){return a-b;}
int Point::product(int a,int b) { return a*b; }

动态链接库隐式and显式调用

一、隐式应用动态链接库(三个文件怎么用)

1.新建一个控制台工程,在工程中添加.h头文件路径(菜单Tools->Options->Directors)//.h文件用法

2.添加add.lib(工程名字上右键->Settings->Link)  或者在cpp中写下代码 #pragma comment (lib,"xxx.lib")   //.lib文件的用法

3.注意将.dll和.lib文件放到工程文件夹下面//.dll 文件的用法

 实例代码

#include <stdio.h>
#include <iostream>
#include "pcl.h"
#pragma comment (lib,"pcl.lib")
using namespace std; void main() {
int a=,b=,c=,d=;
c=add(a,b);
}

二、显式应用动态链接库(四句代码,红色部分替换即可)

1、定义一个句柄对象  HINSTANCE hInst;

2、加载函数  hinst=LoadLibrary("add.dll");

3、定义函数指针类型  typedef int(*ADDPROC)(int a,int b);//注意,ADDPROC是一个类型,不是一个变量,过渡作用

4、定义变量并赋值  ADDPROC Add=(ADDPROC)GetProAddress(hInst,"add");

5、至此就可以运用函数Add(5,3);了。

http://www.cnblogs.com/hlxs/p/3783920.html

链接:http://pan.baidu.com/s/1o6KgHGe 密码:5zaj

动态链接库的生成(dll)和 动态链接库隐式and显式调用的更多相关文章

  1. VC6.0 设置动态链接库工程生成dll以及lib文件的位置

    在"Projet"->"Settings..."的"Link"选项卡中 "Output file name"中设置 ...

  2. android之intent显式,显式学习

    intent,意图 当从一个Activity到另一个Activity时调用,这里重点学习显式,隐式的使用 使用语句上的区别: 隐式意图:                 显式意图: setAction ...

  3. C++ dll的隐式与显式调用

    应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0(或者更先进的版本)在VC\bin目录下提供了一个名为 ...

  4. Windows提供了两种将DLL映像到进程地址空间的方法(隐式和显式)

    调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同.Windows提供了两种将DLL映像到进程地址空间的方法: 1. 隐式的加载 ...

  5. c# implicit explicit关键字(隐式和显式数据类型转换)

    implicit关键字用于声明隐式的用户定义类型转换运算符.(explicit反之)explicit则用于显示转换用户自定义类型.static implicit operator target_typ ...

  6. IOS动画隐式,显式,翻页

    //  ViewController.m //  IOS动画0817 // //  Created by 张艳锋 on 15/8/17. //  Copyright (c) 2015年 张艳锋. Al ...

  7. ABAP-关于隐式与显式的DB Commit

    转载:https://www.cnblogs.com/liaojunbo/archive/2011/07/11/2103491.html 1.显式的DB Commit 显式的DB Commit并没有对 ...

  8. c# .net 关于接口实现方式:隐式实现/显式实现!

    以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习.  通俗的来讲,“显示接口实现”就是使用接口名称作为方法 ...

  9. activity的隐式和显式启动

    显式Intent(Explicit intent):通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent(Implicit i ...

随机推荐

  1. 南阳oj-喷水装置(一)

    喷水装置(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以 ...

  2. oracle 查询重复数据

    SELECT * FROM td_attrval_group WHERE parent_attrval_id IN(SELECT parent_attrval_id FROM td_attrval_g ...

  3. JavaScript对象(一)——Function对象

    写在最前面: 对象只是带有属性和方法的特殊数据类型(js的7种数据类型:字符串,数字,布尔,数组,对象,null,undefined). JavaScript是面向对象的语言,但是JavaScript ...

  4. css元素隐藏(display:none和visibility:hidden)

    在css中, display:none和visibility:hidden都能够使元素隐藏.但是两者所带来的效果完全不同. css  display:none 当使用该样式的时候,HTML元素的宽高等 ...

  5. winform datagridview 添加行号。

    private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { private ...

  6. WPF & ArcGIS Engine三维开发入门攻略

    原文 http://www.cnblogs.com/Realh/archive/2010/12/14/1906112.html 前些日子在做ESRI的开发大赛,从刚开始接触ArcGIS Engine( ...

  7. invesments 第三章 上

    1. How firms issue securities: 公司如何发行股票 A.       primary market: 新的股票,债券和其他的证券第一次发行的market B.        ...

  8. Linux系统编程(18)——正则表达式实用举例

    匹配特定字符串: 只能输入长度为3的字符:"^.{3}$". 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$". 只能输入由26个大写英文字母组 ...

  9. Google map v3 using simple tool file google.map.util.js v 1.0

    /** * GOOGLE地图开发使用工具 * @author BOONYACHENGDU@GMAIL.COM * @date 2013-08-23 * @notice 地图容器的(div)z-inde ...

  10. Implement Trie (Prefix Tree) 解答

    Question Implement a trie with insert, search, and startsWith methods. Note:You may assume that all ...