一.Windows动态库的创建:

   1.先选择 "DLL" 和 “控项目”

  

   2.添加一个头文件,一个源文件  CppDll.h,CppDll.cpp,一个模块定义文件 CppDll.def

   关于模块定义文件的介绍(百度百科):

http://baike.baidu.com/link?url=pfwgvp6L_zHUK2XrDjy2RqCg7qwy76WrOcepxnpg2ach3aybCdJwIXeDp6FhThKbZ8H8fd9wSAhXTqJi5C45Ya

 
   3.3个文件的实现如下:
    //头文件
//CppDll.h
//2014-4-2 programed by sixbeauty
//使用预编译开关切换类的导入导出定义
#ifdef DLLCLASS_EXPORTS #define EXT_CLASS _declspec(dllexport)//DLL #else #define EXT_CLASS _declspec(dllimport)//使用者 //函数声明
EXT_CLASS int CPPdll_sub(int sub1,int sub2);
EXT_CLASS int CPPdll_add(int add1,int add2);
EXT_CLASS int CPPdll_mul(int mul1,int mul2); #endif

   //源文件

//CppDll.cpp
//2014-4-2 programed by sixbeauty
#include"CppDll.h" int CPPdll_add(int add1,int add2)
{
return add1+add2;
} int CPPdll_sub(int sub1,int sub2)
{
return sub1-sub2;
} int CPPdll_mul(int mul1,int mul2)
{
return mul1*mul2;
}

   //模块定义文件

LIBRARY
EXPORTS
CPPdll_add @
CPPdll_sub @
CPPdll_mul

  4.编译生成动态库,在工程的 "Debug" 文件夹中,有  CppDll.dll   和 CppDll.lib  文件 ,再加上我们写的头文件  CppDll.h ,这是我们一会要用的。

二.Windows动态库的使用:

   1.老规矩,win32控制台 + 空项目,项目名叫  CppDllUse 。

   2.把文件复制项目所在目录下面

  

   3.添加一个源文件 CppDllUse.cpp,添加一个现有项 "CppDllUse.h"

   

  4.实现源文件:

//2014-4-2  programed by sixbeauty
//CppDllUse #include<stdio.h>
#include"CppDll.h" #pragma comment(lib,"CppDll.lib") int main()
{
int sum=CPPdll_add(,);
int sub=CPPdll_sub(,);
int mul=CPPdll_mul(,);
printf("sum=%d,sub=%d,mul=%d\n",sum,sub,mul); return ;
}

  5.编译,运行。

好的,今天就到这里,我还要写万恶的毕业论文,呜呜~~~~(>_<)~~~~

2014-04-02

Windows 动态库创建和使用 part 2的更多相关文章

  1. Windows动态库学习心得

    最近在工作中需要给项目组其他成员提供调用函数,决心抛弃以前“拷贝头文件/源文件”的简陋方法,采用动态库的方式对自己开发的接口进行模块化管理.因之前一直没有机会从事Windows动态库的开发,现借助这个 ...

  2. 【转】分析Linux和windows动态库

    原文地址:http://www.cnblogs.com/chio/archive/2008/11/13/1333119.html 摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Lin ...

  3. Linux和windows动态库

    转载:http://www.cnblogs.com/chio/archive/2008/11/13/1333119.html 态链接库技术实现和设计程序常用的技术,在Windows和Linux系 统中 ...

  4. windows动态库与Linux动态库

    Linux动态库和windows动态库的目的是基本一致的,但由于操作系统的不同,他们在许多方面还是不尽相同.但是尽管有差异Linux动态库的windows动态库还是可以移植的,有一些规则以及经验是必须 ...

  5. linux和windows动态库加载路径区别

    # linux和windows动态库加载路径区别 ### 简介------------------------------ linux加载动态库的路径是系统目录/lib和/usr/lib.- wind ...

  6. VC 静态库与动态库(三)动态库创建与使用_隐式链接

    动态库分为二种,一种隐式链接,另一种显示调用.不论哪种动态库,本质都是运行时动态加载 隐式链接:程序运行时,由编译系统自动加载动态库,然后根据程序的引入表进行重定位,当程序退出时自动卸载动态库 显示调 ...

  7. c++动态库封装及调用(2、windows下动态库创建)

    DLL即动态链接库(Dynamic-Link Libaray)的缩写,相当于Linux下的共享对象.Windows系统中大量采用了DLL机制,甚至内核的结构很大程度依赖与DLL机制.Windows下的 ...

  8. linux静态与动态库创建及使用实例

    一,gcc基础语法: 基本语法结构:(由以下四部分组成) gcc -o 可执行文件名 依赖文件集(*.c/*.o) 依赖库文件及其头文件集(由-I或-L与-l指明) gcc 依赖文件集(*.c/*.o ...

  9. windows 动态库的封装以及调用

    1.一个程序从源文件编译生成可执行文件的步骤:预编译 -->  编译 -->  汇编 --> 链接(1)预编译,即预处理,主要处理在源代码文件中以“#”开始的预编译指令,如宏展开.处 ...

随机推荐

  1. 给ubuntu设置静态ip —— How to set static IP Address in Ubuntu Server 16.04

    原文: http://www.configserverfirewall.com/ubuntu-linux/ubuntu-set-static-ip-address/ ----------------- ...

  2. 基于c++11新标准开发一个支持多线程高并发的网络库

    背景 新的c++11标准出后,c++语法得到了非常多的扩展,比起以往不论什么时候都要灵活和高效,提高了程序编码的效率,为软件开发者节省了不少的时间. 之前我也写过基于ACE的网络server框架,但A ...

  3. Linux 静态链接库和动态连接库

    (0)文件夹 VMware 下安装Ubuntu的吐血经历 零基础学习Shell编程 Linux下的makefile的妙用 Linux调试神器 -- gdb 十分钟学会Python的基本类型 Linux ...

  4. mysql 严格模式取消 group by 和 date zore

    取消单个库的时间严格模式 set global sql_mode=(select replace(@@sql_mode,'NO_ZERO_IN_DATE,NO_ZERO_DATE',''));

  5. [物理题+枚举] hdu 4445 Crazy Tank

    题意: 给你N个炮弹的发射速度,以及炮台高度H和L1,R1,L2,R2. 问任选发射角度.最多能有几个炮弹在不打入L2~R2的情况下打入L1~R1 注意:区间有可能重叠. 思路: 物理题,发现单纯的依 ...

  6. Android蓝牙开发

    Android蓝牙开发 近期做蓝牙小车,须要Android端来控制小车的运动.以此文记录开发过程. 使用HC-06无线蓝牙串口透传模块.对于其它的蓝牙设备本文相同适用. 蓝牙开发的流程: 获取本地蓝牙 ...

  7. Drupal启动阶段之六:页面头信息

    Drupal在本阶段为用户设置缓存头信息.Drupal不为验证用户缓存页面,每次请求时都是从新读取的. function _drupal_bootstrap_page_header() { boots ...

  8. asp 支付宝 企业版 接口 支持网银接口 ,网银直接支付

    asp 支付宝 企业版 接口 支持网银接口 ,网银直接支付 仅仅是多了一个defalutbank的參数. 详细看 open.alipay.com <% ' 类名:AlipaySubmit ' 功 ...

  9. (一)Lucene——基本概念介绍

    1. Lucene是什么 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakart ...

  10. PHP保留2位小数、格式化小数、浮点数

    JS保留两位小数例子 四舍五入使用函数 toFixed() [javascript] <html> <head> </head> <script> va ...