vs2010 动态库的生成和使用
来源:互联网 发布:简单绘图软件 编辑:程序博客网 时间:2024/05/16 09:47
动态库的生成:
对于已经完成的MFC项目,要修改生成动态库(dll),方法如下:
1、vs2010打开项目,选择 项目属性-》配置属性-》常规-》配置类型 选择动态库(dll), 其次在链接器-》常规 中的输出文件修改输出文件的文件后缀即可
2、对于要导出的函数,有两种方法,使用模块定义文件(def)和直接在函数的声明出定义即可
使用模块定义文件时,首先在项目中添加一个新文件(模块定义文件def),内容如下:
LIBRARY
EXPORTS
add //要导出的函数的名字
另一种方法是增加一个头文件 Dll.h,内容如下:
_declspec(dllexport) int add(int a, int b);
当被人需要使用该库中的导出函数的时候,只需要包含该头文件,不需要另外的extern函数声明。
但是这种方法有缺陷,导出的函数经过c++的编译器,会导致导出函数的名字发生改变,为防止此种情况的发生,
通常在头文件中声明的时候,添加 extern "C";
即: extern “C” _declspec(dllexport) int add(int a, int b);
但是这种方法只适用导出全局函数,不能用于导出一个类的成员函数。若要导出一个类的成员函数,用第一个方法(模块定义文件)
3、对于生成的库,要查看其中的导出函数,可用以下方法
在命令提示符模式下,输入dumpbin -exports *.dll
正常情况下,会提示找不到dumpbin命令,此时不用担心,找到vs2010的安装目录,找到vcvars32.bat文件即可,一般该文件的目录如下,F:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat,在命令提示符窗口下运行该程序即可(这个文件是在设置dumpbin命令的环境变量)。若关闭该窗口重新打开需要重新执行一次该文件命令。若运行该文件后依然找不到dumpbin命令,则可能是vcvars32.bat文件有错误,需要网上重新下载一个该文件即可。
4、使用上述生成的动态库的方法
1. 将生成的dll和lib文件拷贝到新项目中的源文件目录下
2. 将头文件Dll.h添加到新项目中,包括将该其拷贝和在项目中添加该文件
3. 在新项目中,项目属性->链接器->输入 中添加lib文件的名字 *.lib
4. 在新建项目的源文件中添加 #pragma comment(lib, "*.lib")
5、MFC程序打包为安装文件
1. 打开vs2010,新建项目为 其他项目类型->visual studio Installer->安装项目
2. 在解决方案处,添加已有项目,将需要打包的项目文件(.vcxproj)添加进去
3. 在新的项目中,右键选择 添加->项目输出,选中新添加的要打包的项目
4. 选择生成,即可生成一个setup的安装文件
- vs2010 动态库的生成和使用
- 使用vs2010生成和使用动态库和静态库
- VS2010下静态链接库和动态链接库的生成和使用
- Qt动态库的生成和使用
- 动态库的生成和使用
- linux 动态库的生成和使用
- VS2010 静态库生成和使用
- VS2010生成和使用链接库
- VS2010创建和使用动态链接库
- VS2010设置动态库和静态库生成路径
- VS2010 编译 sqlite3 生成动态库和链接库
- vs2010 静态库的生成与使用
- 动态库生成和使用
- 动态库生成和使用
- VC6.0动态库工程转成VS2010来编译,生成的动态库使用时程序直接退出
- VS2010 生成DLL和动态加载DLL
- vs2010创建和使用动态链接库DLL和lib
- Linux 下 动态链接库 .so 的生成和使用
- 0804-APP-Preference-default-values
- docker
- 2. 预处理指令
- jQuery formValidator使用说明
- 在Win xp上安装oracle 9i数据库后,马上修改计算名,监听服务起不了的解决方法
- vs2010 动态库的生成和使用
- Mahout 文本分类过程
- 字节序的转换
- Android 关于inflate
- phonegap3.4 拍照、调用图片功能
- 【转载】linux杀死进程以及发送或响应信号
- TMS320C64x DSP L1 L2 Cache架构(1)——C64x Cache Architecture
- sting_to_double
- 纯CSS3文字效果推荐