关于Additional Include directories、Additional Library directories、Addition
2013-09-08 19:35
405 查看
转载 自 :http://blog.sina.com.cn/s/blog_79ba23780101gpeh.html
关于Additional Include directories、Additional Library directories、Addition
(2013-01-25 09:02:59)转载▼
标签:additionalincludediradditionallibrarydiradditionaldependencioutputfileimportlibary | 分类: VC-MFC相关 |
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等用户使用。
此文属于夏之吻的原创。。。
相关文章推荐
- 关于VS的操作:Additional Include directories、Additional Library directories、Addition
- vs2010里附加包含目录里面的%(AdditionalIncludeDirectories)是什么意思?
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- VS中设置Additional Include Directories
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- Additional Include Directories 与 Include Directories的区别
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- 多个 additional include directories 的复制方法
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- 关于Android Studio报错java.lang.UnsatisfiedLinkError: Couldn't load faceppapi: findLibrary returned null
- linux安装mysql出现Could NOT find Curses (missing CURSES_LIBRARY CURSES_INCLUDE_PATH),提示解决方法
- 关于<uses-library android:name="android.test.runner"/>
- 关于C头文件包含include "**.h"
- 关于Cannot open include file: 'ceconfig.h': No such file or directory
- 关于gcc/g++的include路径和其他一些路径问题
- 关于 microsoft visual c++ debug library