加载中…
个人资料
夏之吻
夏之吻
  • 博客等级:
  • 博客积分:0
  • 博客访问:225,734
  • 关注人气:22
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

关于Additional Include directories、Additional Library directories、Addition

(2013-01-25 09:02:59)
标签:

additionalincludedir

additionallibrarydir

additionaldependenci

outputfile

importlibary

分类: VC-MFC相关

1.Configuration Properties => C/C++ => General => Additional Include directories:添加额外的你要搜索的包含头文件的“include”目录。

2.Configuration Properties => Linker => General => Additional Library directories:添加额外的你要搜索的包含库文件(即.lib)的目录。

3.Configuration Properties => Linker => Input => Additional dependencies:清楚地列出你要添加的.lib文件。

其中2与3的主要区别:其中2只告诉链接器在哪个位置搜索.lib文件,而3却说明了在2提供的目录位置下具体要搜索的库文件。当然,在Debug与Release下这些可以不同(包括目录与库文件)。对于2来说,在程序中可以用“#include  "头文件的具体位置"”预编译指令实现,而对于2,3来说,在程序中可以用“#pragma comment(lib, "库文件的具体位置\\libname")”预编译指令来实现。{具体的信息可以在MSDN里参考#pragma directives指令,结合百度百科#pragma comment看。另一种设置的方法是像你添加.h和.cpp文件一样,把lib文件添加到工程文件列表中去.VC中,切换到"解决方案视图",--->选中要添加lib的工程-->点击右键-->"添加"-->"现有项"-->选择lib文件-->确定即可.

4.Configuration Properties => Linker => General => Output File:可以指定输出的.exe名或者.dll名

5.Configuration Properties => Linker => Advanced => Import Libary:指定要生成的导入库,5必须配合4的使用。因为通常我们在生成.dll的时候要配合生成一个.lib文件,这个.lib文件称为导入库(详见百度百科“导入库”注意其与“静态库”的区别),将这个.lib文件通过上述讲过的三种方法添加到程序里,我们就可以引用.dll文件了,当然也可以在程序中直接使用函数HANDLE hModule=LoadLibrary("dll文件名")获得.dll文件的使用权,配合Getprocaddress函数的使用来调用.dll文件中的函数(当然你要熟悉.dll文件中的函数)以及FreeLibrary函数释放dll。

6.有些程序员反应,按照如上的设置不能生成.lib文件(即导入库),因为在程序中没有在要导出的函数前加上__declspec(dllexport)的声明,方法一:例如你要导出myFunc()这个函数,你可以这样写:__declspec(dllexport) int add(){}。这种方法导出的函数只能被VC++用户调用。方法二:也可以在.def文件中定义.dll信息以及要导出的函数的信息,在链接器阶段可以使用“/DEF 模块定义文件”链接器选项调用.def文件。而这种方法导出的函数可以被VC++、VB、Delphi等用户使用。

此文属于夏之吻的原创。。。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有