Windows 动态库创建和使用 part 2
一.Windows动态库的创建:
1.先选择 "DLL" 和 “控项目”

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

关于模块定义文件的介绍(百度百科):
http://baike.baidu.com/link?url=pfwgvp6L_zHUK2XrDjy2RqCg7qwy76WrOcepxnpg2ach3aybCdJwIXeDp6FhThKbZ8H8fd9wSAhXTqJi5C45Ya
//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的更多相关文章
- Windows动态库学习心得
最近在工作中需要给项目组其他成员提供调用函数,决心抛弃以前“拷贝头文件/源文件”的简陋方法,采用动态库的方式对自己开发的接口进行模块化管理.因之前一直没有机会从事Windows动态库的开发,现借助这个 ...
- 【转】分析Linux和windows动态库
原文地址:http://www.cnblogs.com/chio/archive/2008/11/13/1333119.html 摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Lin ...
- Linux和windows动态库
转载:http://www.cnblogs.com/chio/archive/2008/11/13/1333119.html 态链接库技术实现和设计程序常用的技术,在Windows和Linux系 统中 ...
- windows动态库与Linux动态库
Linux动态库和windows动态库的目的是基本一致的,但由于操作系统的不同,他们在许多方面还是不尽相同.但是尽管有差异Linux动态库的windows动态库还是可以移植的,有一些规则以及经验是必须 ...
- linux和windows动态库加载路径区别
# linux和windows动态库加载路径区别 ### 简介------------------------------ linux加载动态库的路径是系统目录/lib和/usr/lib.- wind ...
- VC 静态库与动态库(三)动态库创建与使用_隐式链接
动态库分为二种,一种隐式链接,另一种显示调用.不论哪种动态库,本质都是运行时动态加载 隐式链接:程序运行时,由编译系统自动加载动态库,然后根据程序的引入表进行重定位,当程序退出时自动卸载动态库 显示调 ...
- c++动态库封装及调用(2、windows下动态库创建)
DLL即动态链接库(Dynamic-Link Libaray)的缩写,相当于Linux下的共享对象.Windows系统中大量采用了DLL机制,甚至内核的结构很大程度依赖与DLL机制.Windows下的 ...
- linux静态与动态库创建及使用实例
一,gcc基础语法: 基本语法结构:(由以下四部分组成) gcc -o 可执行文件名 依赖文件集(*.c/*.o) 依赖库文件及其头文件集(由-I或-L与-l指明) gcc 依赖文件集(*.c/*.o ...
- windows 动态库的封装以及调用
1.一个程序从源文件编译生成可执行文件的步骤:预编译 --> 编译 --> 汇编 --> 链接(1)预编译,即预处理,主要处理在源代码文件中以“#”开始的预编译指令,如宏展开.处 ...
随机推荐
- 【菜鸟也疯狂UML系列】——浅析UML四种关系
在UML中.关系是很重要的.它抽象出对象之间的联系,让对象构成某个联系起来的结构.以下将简要分析一下UML中的四种关系:关联.依赖,泛化,实现. 一.举例罗列 1.关联(Association) 关联 ...
- Python 类变量 实例变量
类变量: 是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的).例如下例中,num_of_instance 就是类变量,用于跟踪存在着多少个Test 的实例. 实例变量: 实例 ...
- 如何系统掌握游戏编程中3D图形学相关的基础?
https://www.zhihu.com/question/27544895 三维几何学基础:三维坐标系统点与矢量矩阵与几何变换四元数与三维旋转
- ppm图像格式
http://blog.csdn.net/r91987/article/details/5435328 PPM文件格式分三种: 1. PPM灰度文件 文件头由3行文本组成,可由fgets读出 ...
- js实现选择及复制粘贴
最近项目有个点击复制到粘贴板的需求,在这里做一个简单的例子分享给大家,没考虑兼容性,需要兼容的大家去查找下文档 //html<p id="element">测试测试&l ...
- Sublime Text 如何一个代码双屏显示代码上下部分?
Sublime Text 如何一个代码双屏显示代码上下部分? sublime text如何一个代码双屏显示代码上下部分 先显示2行实图 把想要分屏显示的文件,打开新窗口,然后再拖过去就可以了. 快捷操 ...
- cocos2dx 制作单机麻将(四)
cocos2dx 制作单机麻将(四) 麻将逻辑5.模拟出牌 // // main.cpp // MajiangLogicTest // // Created by TinyUlt on 14-8-16 ...
- eclipse下的tomcat内存设置大小(转)
步骤: 1.点击Run 2.选择Run Configurations, 3.系统弹出设置tomcat配置页面,在Argument中末尾添加参数中的VM arguments中追加: -Xms256M - ...
- 【php】模板页面展示复选框已选中选项和数据
写在最开始: 2)我们这里流程是编辑.修改 已经存储的数据. 1.[修改]功能页面: 2.代码:HTML <dt>民宿设施</dt> <dd><label&g ...
- asp.net 抓取新闻
前台页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...