Visual C++ 2010 生成并加载DLL动态链接库
来源:互联网 发布:天下为公我为母 知乎 编辑:程序博客网 时间:2024/05/17 03:26
动态链接库的生成:
- 首先要看看官方网站给出的详细介绍如何 创建和使用dll动态链接库项目
- 这个链接中将创建dll的项目和使用dll的项目放在同一个solution当中。这可能不是我们想要的情况。我们通常希望自己随意创建一个项目来利用现有的dll文件。那怎么办呢?这样就要用VC++的一般方法了,这里主要有如下几个步骤:
- 当你把VC++项目设置为DLL项目的时候,项目会自动定义一个宏(在C++/Preprocessor里):项目名__EXPORTS。例如:COMMUNICATER_103_EXPORTS
- 使用用上面的宏定义导出符号:
#ifndef COMMUNICATER_H #define COMMUNICATER_H //#include "ace/ACE_export.h" #ifdef COMMUNICATER_EXPORTS #define COMMUNICATER_API __declspec(dllexport) #else #define COMMUNICATER_API __declspec(dllimport) #endif class Communicater { public: COMMUNICATER_API Communicater(void); COMMUNICATER_API virtual void run_collect() = 0; COMMUNICATER_API virtual ~Communicater(void); }; #endif
动态链接库的加载
1 加载头文件 "fun.h"目录
这个添加目录的方法有三个地方:
http://blog.csdn.net/cppyin/article/details/6225596
http://blog.csdn.net/klarclm/article/details/7708549
http://www.cnblogs.com/lidabo/archive/2
http://blog.csdn.net/super_admi/article/details/8308708各种路径宏
1.附加路径 /I 选项;/I是由C/C++ -> General -> Additional Include Directories设置的;代码写成:#include "file.h"
2.系统路径 INCLUDE 环境变量表示;INCLUDE是由VC++ Directories -> Include Directories设置的;代码写成#include <file.h>
注意: 相对路径添加资源文件:相对路径的起点在项目文件夹里面(即source file的路径即.vcxproj所在路径),常用的路径包括:$(SolutionDir)
此宏定义包含了路径末尾的“\”,所以你一般会写:$(SolutionDir)lib\ (注意第一个路径之间没有\分隔符,但第二个有)
在以上2或者3其一中添加$(ACE_ROOT)这是为了让编译器找到ACE相关的头文件。
2 加载动态链接库引入库文件 "fun.lib"目录和依赖项
在右边的“Library Directories"中添加$(ACE_ROOT)/lib
“右键项目名”--properties(或者点击菜单:“project”--“properties”)--"configurationg and properties"--”linker“--”input“--"additional dependencies" 输入lib文件全名fun.lib,这是为了让编译器构建项目时链接dll用于引导使用
3 加载动态链接库文件 "fun.dll"
此文件和fun.lib放到同一个目录里即可。
注意:因为dll,lib文件可以是不同的编译器版本制作出来的,在运行时要求也不同。有些功能只需要1(boost中的lexical库等,因为这些库的实现就在源代码里面);有些需要2(比如boost中的regex等,这些库要求必须只用编译之后的lib库),有些库需要1、2、3(比如ACE、pocketSphinx,因为每次都使用编译器重新编译到代码中太浪费时间了。所以就编译好了包含lib,dll即可)
- Visual C++ 2010 生成并加载DLL动态链接库
- visual studio 2010 生成dll 动态链接库
- Visual Studio Express 2013 for Windows Desktop 将c文件生成.dll动态链接库
- C语言动态链接库DLL的加载
- C代码文件如何生成Dll动态链接库
- Visual C++动态链接库(Dll)编程
- Visual Studio下建立并隐式调用自己的动态链接库dll
- Visual Studio下建立并隐式调用自己的动态链接库dll
- Visual Studio下建立并显示调用自己的动态链接库dll
- Visual Studio下建立并隐式调用自己的动态链接库dll
- Visual Studio下建立并隐式调用自己的动态链接库dll
- 【Visual Studio】使用 pexports 根据 VS 的 .dll 动态链接库生成 .lib 库文件
- VC++动态链接库(DLL)的加载
- 程序加载一个动态链接库dll
- 生成动态链接库dll和调用
- [Asp.net]生成dll(动态链接库)
- 动态链接库dll的 静态加载 与 动态加载
- 动态链接库dll的 静态加载 与 动态加载
- 构建ReportViewer表格工具与js图表控件一体化的报表展示解决方案
- Android 隐藏StatusBar
- linux设备模型详解
- 使程序只能运行一次,用互斥量来判断程序是否已运行,并设置窗体背景色
- java--FilenameFilter文件过滤器
- Visual C++ 2010 生成并加载DLL动态链接库
- 用批处理文件(bat)设置IP地址
- 文件权限属性设置
- A*算法
- 12.7 给计算增加日志记录
- C#导出到word文件,定位和字体控制和格式
- java(日期处理)
- 如何在ubuntu10.04下载android4.0的源码(并解决以往无法下载android源码的问题)
- AliveCor iPhone ECG:方便实惠的心率检测助手