精华内容
下载资源
问答
  • 在导出函数在声明和定义时,都一定要有关键字 _declspec(dllexport) ,这样才会同时生成 .dll 和 .lib 文件。 demo: 接口头文件: #pragma once extern "C" _declspec(dllexport) int addtest(int a, int b); ...

    导出函数在声明和定义时,都一定要有关键字 _declspec(dllexport)  ,这样才会同时生成 .dll 和 .lib 文件。

    demo:

    接口头文件:

    #pragma once
    
    extern "C" _declspec(dllexport) int addtest(int a, int b);

    实现:

    #include "stdio.h"
    #include "pch.h"
    
    
    extern "C" _declspec(dllexport) int addtest(int a, int b) {
      return a + b;
    }

     

    展开全文
  • 很多朋友想使用VS2015生成动态库(因入库lib文件和dll文件),但根据网上资料生成的却只有dll文件,没有lib文件,主要原因是没有按照指定格式去写代码,下面我写出一个通用的模板来简单阐述怎么生成lib文件和dll文件...

    很多朋友想使用VS2015生成动态库(引入库lib文件和dll文件),但根据网上资料生成的却只有dll文件,没有lib文件,主要原因是没有按照指定格式去写代码,下面我写出一个通用的模板来简单阐述怎么生成lib文件和dll文件。当然,本博客的测试代码和工程将会提供下载链接,如果是认真读完本博客,一定会知道怎么做。如果是懒人或者是伸手党,请付出金钱或者CSDN金币代价去下载!
    假设我们写一个.cpp,里面有很多的功能,文件名字叫做tools.cpp,具体实现如下:

    
    #include "tools.h"
    #include <iostream>
    
    void PrintInfo()
    {
        std::cout << "DLL Export Test" << std::endl;
    }
    
    int Add(int a, int b)
    {
        return a + b;
    }
    
    int Sub(int a, int b)
    {
        return a - b;
    }
    

    接下来写头文件,即tools.h,我们需要按照此格式来写,当然,也可以在.h文件和.cpp文件都写上同种语法声明,但是这种方法在实际项目中不常用。

    #ifndef  _TOOLS_H_
    #define _TOOLS_H_
    
    #if (defined WIN32 || defined _WIN32 || defined WINCE)
        #define PROJ_EXPORTS __declspec(dllexport)
    #else
        #define PROJ_EXPORTS
    #endif // (WIN32)
    
    // 测试函数
    PROJ_EXPORTS void PrintInfo();
    PROJ_EXPORTS int Add(int a, int b);
    PROJ_EXPORTS int Sub(int a, int b);
    
    #endif // ! _TOOLS_H_
    

    至于这种生成库的工程怎么建立,网上的这种教程就像大白菜一样多,不多赘述!
    基本流程就是[添加新项目] –>[已安装]–>[Visual C++]–>[Win32]–>[Win32项目]–>写上项目名称–>应用程序类型设置为DLL,最多勾上一个空项目选项。接下来把代码放进去,然后生成即可。
    生成lib和dll之后,需要考虑怎么使用lib文件和dll文件,那么需要编写一个测试去使用这个库。至于怎么配置项目属性,网上搜索这种怎么使用第三方库的教程也有很多,不多赘述,只讲解其他博客没有提到的部分。
    我们在生成解决方案的时候,最好需要设置一个依赖项选项,即我们编写测试的项目需要依赖生成库文件的项目,这样会先生成那个生成lib文件的项目,后生成测试项目。另外,如果启动项为生成lib的那个工程,会报错,原因很简单,就是这个工程没有main函数,简单说就是没有入口,不能执行,当然不能启动,换个有main函数的项目即可解决。

    本博客测试代码地址

    展开全文
  • 出现这种情况,多半是因为你的代码中,没有导出任何方法、类等,所以生成的DLL不需要lib文件来记载导出符号 最简单的道理,你在任意一个头文件中增加一行 __declspec(dllexport) void nothing(void); // ...

    出现这种情况,多半是因为你的代码中,没有导出任何方法、类等,所以生成的DLL不需要lib文件来记载导出符号

    最简单的道理,你在任意一个头文件中增加一行

    __declspec(dllexport) void nothing(void);

     

    // dllmain.cpp : 定义 DLL 应用程序的入口点。
    #include "framework.h"
    
    __declspec(dllexport) void nothing(void);
    
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
                         )
    {
        switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
        }
        return TRUE;
    }
    
    void nothing(void)
    {
    }
    

     

    展开全文
  • 因为这次需要调用其他库再生成自己的动态库,在最开始的时候只生成Dll文件 没有lib文件。 解决,是把需要调用的库的两个dll文件放在执行文件的路径下,保证封装的函数能成功运行调用这个库,才能将函数导出。 ...

    因为这次需要调用其他库再生成自己的动态库,在最开始的时候只生成Dll文件 没有lib文件。

    解决,是把需要调用的库的两个dll文件放在执行文件的路径下,保证封装的函数能成功运行调用这个库,才能将函数导出。

    win32动态库只生成Dll文件 怎么没有lib文件

    展开全文
  • Qt 编译动态库生成dll没有lib文件

    千次阅读 2020-11-24 11:27:16
    背景描述: ... 主动修改库A为动态库(.pro文件去除CONFIG += staticlib),只生成dll而无lib文件; 现象a原因和解决方案: 原因:库A部分组件加载时涉及C++和C底层库,VS编译时可由VS编译环境完成查找和
  • 生成动态链接DLL但未生成lib文件的解决办法
  • 动态库生成不了lib文件 原因:路径不对 pro文件 INCLUDEPATH += ../../include/base/httpserver \ ../../include/base/universalconfig \ ../../include/base
  • 由于windows在动态链接的时候,必须从dll文件对应的lib文件里面寻找可链接程序的标志符,因此当你编译生成一个动态库的时候,必须生成相应的lib文件。  有两种方法,一种是 1、在命令行执行: dumpbin /exports...
  • 【1】打开VS2017,新建动态链接(DLL) 【2】新建头文件--标头.h(名字随意) 头文件中先不用写内容。 【3】新建源文件--源.cpp(名字随意) 类似于新建头文件的方法,新建源文件 3.1 包含头文件 #...
  • C++ dll生成dll文件,而未生成lib文件的问题逐项检查 逐项检查 新建项目时,选择应用程序类型为dll,并勾选“Export Symbols”; 属性-&amp;gt;链接器-&amp;gt;高级-&amp;gt;导入库 中定义输出...
  • 又或者是其他的一些原因,有必要学习静态库及动态库的相关知识,本文大多数内容均为参考网上资料后的整理,作为学习的总结。 二、DLL与LIB文件的区别 lib是一个二进制文件,与dll类似,供其他程序调用。lib与dll...
  • VS生成DLL没有生成LIB文件的解决方法

    千次阅读 2018-12-21 16:38:03
    1、在所建工程上单击鼠标右键,在弹出的右键菜单中选择“添加--&...模块定义文件”中填写刚才定义的def文件,然后再重新编译即可生成LIB文件。 2、新建-&gt;win32项目-&gt;-&gt;dll...
  • 上一个cmake生成exe的博客已经说明了怎么在 linux cmake-gui 和 visual studio 下怎么编译CMake工程。这篇文章会直接在 visual studio 下构建目标。 下面主要对CMake生成的两种方式进行相关...这里牵扯到lib构建顺...
  • 使用QT_5.10.1编译qftp源码,生成说明https://blog.csdn.net/sinat_30034481/article/details/80073682
  • 最近在尝试VS2010,但是在使用向导生成动态库之后却无法产生LIB文件。解决方法其实很简单,是因为缺少.def文件。 只需要在工程上右键->添加->新建项->模块定义文件(.def)->随便输入个名字->添加,就可以了。 vs自动...
  • 进行动态库编译,链接动态库 -Ldir 在动态库的搜索路径中增加dir目录 -lname 链接静态库(libname.a)或动态库(libname.so)的库文件 -fPIC(或fpic) 生成使用相对地址无关的目标代码 方法一...
  • Visual Studio生成并使用动态库(dll,lib)

    千次阅读 2018-07-05 20:29:02
    pre 在VS中创建一个解决方案,解决方案中包含一个库项目,其余所有的...这样的依赖关系可以采用静态依赖库lib动态依赖库dll实现,博主【技术先生】的一篇博客 1 简明的阐述了两者的区别,这里采用了静态链接...
  • vs2010动态链接生成DLL,没有LIB的解决办法 可能是函数没有导出,忘记添加DLL_API 管理员在2009年8月13日编辑了该文章文章。 --> --> 阅
  • Qt如何使用lib库封装界面一(Qt5动态链接创建和使用)
  • 使用VS生成dll没有产生lib文件

    千次阅读 2019-07-11 13:57:23
    使用vs生成DLL时,没有产生lib,一般发生在我们自己创建的DLL项目中,产生这个问题的主要原因是没有导出类。 导出DLL标记有两种方法,只要采用其中一种就可以解决。 1.添加def文件 在工程上右键 -> 添加 -> ...
  • 动态库文件dll生成lib库文件

    万次阅读 2014-06-18 11:02:55
    本文基于OpenBlas的编译和安装,来说明如何从一个dll文件生成lib库文件。 参考OpenBlas的说明“Howto generate import library for MingW”,和MinGW的说明HOWTO Create an ImportLibrary for a DLL using MinGW,...
  • C/C++ 生成动态库文件(dll)

    万次阅读 2019-02-28 15:20:20
    功能模块的入口函数是指你开发的程序的对外的接口,也就是说生成动态库后,其他程序通过这个接口函数来使用你开发的功能。 1. 入口函数在声明时要加上“__declspec(dllexport)”,表明这是一个...
  • QtCreator 生成动态库

    千次阅读 2016-06-01 11:55:18
    越来越厌恶CSDN的盈利模式 本文已转移至https://www.cnblogs.com/isky0824/p/12096550.html
  • VS生成DLL没有产生lib的解决方法

    万次阅读 2019-01-03 14:53:31
    使用vs生成DLL时,没有产生lib,一般发生在我们自己创建的DLL项目中,产生这个问题的主要原因是没有导出类。 导出DLL标记有两种方法,只要采用其中一种就可以解决。 1.添加def文件 在工程上右键 -&amp;gt; 添加 ...
  • VS2017+QT生成动态库(DLL)并完成调用

    千次阅读 2021-05-21 18:02:02
    一、环境介绍 QT版本: 5.12.6 VS版本: 2017 二、功能介绍 在VS2017环境下创建QT工程,并生成DLL库;...Window系统下QT5创建DLL动态库并完成调用:https://blog.csdn.net/xiaolong1126626497/ar...
  • Linux下查看是否有静态库:ar -tv test.a 一、库的简述 ...库分静态库和动态库两种。 静态库: 静态是指每个用到该库的应用程序都会将该库拷贝到自己的目标代码中,因此利用静态库生成的文件比较大。这类库
  • vs生成动态库及使用动态库

    千次阅读 2017-05-25 21:51:30
    动态库(.dll):动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可...
  • QT下生成动态库并链接动态库

    千次阅读 2019-05-21 13:33:17
    QT下生成动态库并链接 请测有效 Qt下生成动态库,参考文章: https://www.cnblogs.com/boright88/p/6263137.html Qt下链接动态库,参考文章: https://blog.csdn.net/yanmanm/article/details/82704651 1、 qt下生成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 135,497
精华内容 54,198
关键字:

生成的动态库没有lib