tag 标签: 动态链接库

相关博文
  • 热度 20
    2013-12-14 16:50
    1204 次阅读|
    0 个评论
    最近要开发一个小的MFC的测试程序,需要使用动态链接库,在这里把关于静态和动态链接库的生成和使用方法总结如下: 1.静态链接库 生成: 用VC++的工程向导建立一个Win32 Static Library,勾选Precompiled header和MFC support(可以不勾选),新建相应的.h和.cpp文件,在.cpp文件当中编写需要定义的函数,在.h当中正常声明,编译生成.lib文件即可,如果勾选了 Precompiled header,则需要在.cpp文件当中包含 #include "StdAfx.h"。 在生成静态库时,经常容易出现类似如下错误: fatal error C1010: unexpected end of file while looking for precompiled header directive 问题一般发生在:通过添加文件的方式,添加了一些cpp文件到一个MFC的程序,但该cpp文件并不是MFC,而是标准的C++。  解决方案1: 右键单击项目工程中的cpp文件,在菜单Project-Settings-C/C++-Precompile Header,设置为第一项:Not using precompile headers。 解决方案2:在.cpp文件开头添加包含文件stdafx.h。 #include"stdafx.h" 使用静态链接库: 将生成库的.h和.lib两个文件文件拷贝到要使用的工程目录下,将库的.h文件添加到工程目录下,并且在要使用库的cpp文件里面包含库的.h文件,在工程设置里面设置.lib文件的路径:link--general--object/library modules,填写相应的库的lib的名称,以.lib结尾,也可以将库的.lib文件直接通过Add to projects添加到工程当中,就不需要设置路径了。 2.动态链接库 生成: 用VC++的工程向导建立一个Win32 Dynamic-Link Library ,新建.h和cpp文件,需要注意的是在.h文件的函数声明之前处需要在函数名前使用如下的声明:extern "C" _declspec(dllexport) int Add(int a,int b); 不这样声明则无法生成lib文件。 动态链接库和静态链接库的一大区别是DLL的函数实现在DLL文件中,lib文件只是一个存放函数入口地址的库,静态链接库将函数的实现直接放在lib里面。 另外,当需要在DLL中使用类以及导出类时,在声明类时在类名前使用_declspec(dllexport)即可,如class _declspec(dllexport) CMath  如果只想导出成员函数,在相应的函数定义前声明即可。 这样在使用时可以直接定义类的对象,使用所有类成员和函数。   使用: 将.h,.lib,.dll文件拷贝到要使用的工程目录下,在cpp文件里面包含.h并将.h添加到工程,如上设置.lib的路径即可直接在cpp文件当中将dll定义的函数当做全局函数使用。                
相关资源
  • 所需E币: 0
    时间: 2020-9-18 20:45
    大小: 6.78KB
    上传者: LGWU1995
    调用动态链接库1-动态链接库导入工具
  • 所需E币: 0
    时间: 2020-9-18 20:46
    大小: 71.95KB
    上传者: LGWU1995
    调用动态链接库2-CLN的配置选项
  • 所需E币: 0
    时间: 2020-9-18 20:51
    大小: 65.01KB
    上传者: LGWU1995
    调用动态链接库3-简单数据类型参数的设置
  • 所需E币: 0
    时间: 2020-9-18 20:51
    大小: 37.71KB
    上传者: LGWU1995
    调用动态链接库4-结构型参数的设置
  • 所需E币: 0
    时间: 2020-9-18 20:51
    大小: 3.12KB
    上传者: LGWU1995
    调用动态链接库5-作为函数返回值的字符串为什么不用在VI中先分配内存
  • 所需E币: 0
    时间: 2020-9-18 20:51
    大小: 16.48KB
    上传者: LGWU1995
    调用动态链接库6-LabVIEW中对C语言指针的处理
  • 所需E币: 0
    时间: 2020-9-10 03:40
    大小: 15.5KB
    上传者: Goodluck2020
    69.调用动态链接库1-动态链接库导入工具.doc
  • 所需E币: 0
    时间: 2020-9-10 03:40
    大小: 105.5KB
    上传者: Goodluck2020
    70.调用动态链接库2-CLN的配置选项.doc
  • 所需E币: 0
    时间: 2020-9-10 03:40
    大小: 112KB
    上传者: Goodluck2020
    71.调用动态链接库3-简单数据类型参数的设置.doc
  • 所需E币: 0
    时间: 2020-9-10 03:40
    大小: 73KB
    上传者: Goodluck2020
    72.调用动态链接库4-结构型参数的设置.doc
  • 所需E币: 0
    时间: 2020-9-10 03:40
    大小: 11.5KB
    上传者: Goodluck2020
    73.调用动态链接库5-作为函数返回值的字符串为什么不用在VI中先分配内存.doc
  • 所需E币: 0
    时间: 2020-9-10 03:40
    大小: 26.5KB
    上传者: Goodluck2020
    74.调用动态链接库6-LabVIEW中对C语言指针的处理.doc
  • 所需E币: 5
    时间: 2020-1-3 18:54
    大小: 297.46KB
    上传者: 2iot
    LED点阵显示牌的设计与动态显示控制……
  • 所需E币: 3
    时间: 2020-1-4 12:51
    大小: 252.89KB
    上传者: 978461154_qq
    以北京普源公司生产的RIGOLDS5000系列数字存储示波器为例,介绍一种通过USB总线接口实现PC机与仪器通信的编程方法,并且给出一个通信应用实例.基子虚拟仪器技术的USB接口仪器通信软件设计叶文生,王思华(暨南大学电子工程系,广东广州510632)摘要:以北京普源公司生产的RIGOLDS5000系列数字存储示波器为例,介绍一种通过USB总线接口实现PC机与仪器通信的编程方法,并且给出一个通信应用实例。关键词:电子仪器USB接口虚拟仪器LabVIEW动态链接库随着现代化科学技术的发展,电子仪器在各行各业家公司于1994年底联合开发的一种通信接口标准,当中得到广泛的应用,成为不可缺少的工具。自1928年峰时推出的版本是O.7版,而直到1998年底推出1.1版之值电子电压表在美国商品化到现在,电子仪器的发展大后,UsB总线接口才得到广泛的应用。现在最新的版本致经历了模拟式一数字式一智能式与程控式三个阶段。……
  • 所需E币: 3
    时间: 2020-2-28 16:02
    大小: 733KB
    上传者: 二不过三
    深入浅出Visual_C++动态链接库(Dll)编程深入浅出VisualC++动态链接库(Dll)编程  动态链接库(DLL)是Windows系统的核心,也是COM技术的基础,因此突破动态链接库一直是技术人员的攻坚目标,本期专题将由浅入深的介绍动态链接库的基础慨念、分类、实现和应用。VC++动态链接库编程之基础慨念1.概论  先来阐述一下DLL(DynamicLinkableLibrary)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。对动态链接库,我们还需建立如下概念:  (1)DLL的编制与具体的编程语言及编译器无关  只要遵循约定的DLL接口规范和调用方式,用各种语言编写的DLL都可以相互调用。譬如Windows提供的系统DLL(其中包括了Windows的API),在任何开发环境中都能被调用,不在乎其是VisualBasic、VisualC++还是Delphi。  (2)动态链接库随处可见  我们在Windows目录下的system32文件夹中会看到kernel32.dll、user32.dll和gdi32.dll,windows的大多数API都包含在这些DLL中。kern……
  • 所需E币: 3
    时间: 2019-5-27 21:54
    大小: 1.47MB
    上传者: royalark_912907664
    组态软件在工业自动化领域起到了至关重要的作用,然而组态软件的二次开发过程缺少重视和保护。针对以上情况,设计了基于动态链接库的组态软件工程授权方法,将组态软件特点与软件加密方法相结合,利用加密硬件作为授权载体,希望在保证系统稳定运行的前提下,防止组态监控软件非授权复制使用。将方法应用到西门子WinCC工程项目中,测试结果表明,在不同授权情况下能够及时做出响应,实现预期功能。