Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1256565
  • 博文数量: 177
  • 博客积分: 1528
  • 博客等级: 上尉
  • 技术积分: 1891
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 18:03
文章分类

全部博文(177)

文章存档

2020年(1)

2018年(19)

2017年(4)

2016年(21)

2015年(40)

2014年(13)

2013年(26)

2012年(16)

2011年(37)

我的朋友

分类: WINDOWS

2012-06-15 14:53:36

不让别人看代码有三种方式 
1.把编译出来的.obj给他去链接 
2.把.obj做成静态库lib文件 
3.编译成 .dll 动态链接库文件 
---------------------------------------------------------------------------------------
方案一 结果是只能给做VC++开发的调用 
方案二 可以给做VC++或BCB开发的调用 
方案三 可以给任何支持调用动态库的开发工具调用 如VB,Delphi 
--------------------------------------------------------------------------------------

静态库包括.lib和.h文件,在工程中使用静态库分为3步: 

1在工程中加入静态库,有两种方法: 
方法一:项目设置中引用.lib,project-setting-link-object/library modules中添加.lib;(需要在tools/options设置正确的引用路径) 
方法二:在项目中直接加入lib,project-add to project-files,选择正确的.lib。 
2在工程中包括.h文件;(可能 需要在tools/options设置正确的引用路径) 
3在工程中使用静态库中的函数. 
--------------------------------------------------------------------------------------

动态链接库一般包括.lib(导出函数),.h,.dll,使用动态库有两种情况: 

1隐式链接,同使用静态库相似,分为三步:引用.lib,包含头文件,使用导出函数; 
2动态加载,直接使用LoadLibrary 加载所需的动态库,然后指定所需的导出函数.


在一些情况下,必须使用动态连接库: 

1.多个应用程序共享代码和数据:比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态连接库实现的。 
2.在钩子程序过滤系统消息时必须使用动态连接库 
3.设备驱动程序必须是动态连接库 
4.如果要在对话框编辑器中使用自己定义的控件,也必须使用动态连接库 
5.动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与合作。而且,各个模块可以独立升级。如果小组中的一个成员开发了一组实用例程,他就可以把这些例程放在一个动态连接库中,让小组的其他成员使用。 
6.为了实现应用程序的国际化,往往需要使用动态连接库。使用动态连接库可以将针对某一国家、语言的信息存放在其中。对于不同的版本,使用不同的动态连接库。在使用AppWizard生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同的动态连接库实现的。 
MFC支持两类动态连接库的创建: 用户动态连接库; MFC扩展类库。

阅读(5498) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~