精华内容
下载资源
问答
  • 具体教程详见:http://blog.csdn.net/u010275850/article/details/53742683
  • 转载: 如何制作dll库的API文档,自动生成微软风格的chm文件 Sandcastle Help File Builder 使用方法 https://www.cnblogs.com/dathlin/p/9310334.html

    转载:
    如何制作dll库的API文档,自动生成微软风格的chm文件 Sandcastle Help File Builder 使用方法
    https://www.cnblogs.com/dathlin/p/9310334.html

    展开全文
  • 这两天涉及到一个后台数据处理的算法,需要把它制作DLL动态链接库提供给他人使用。其实这是一件so easy的事情,但第一次做,踩了几个坑,把这个过程记录下来。 首先进行方法上的列举和选择,基本上有这么几种: ...

    楼主一直在Qt环境下开发一个GUI软件,众所周知,是在Qt Creator(Qt官方IDE)下写C++的代码。这两天涉及到一个后台数据处理的算法,需要把它制作成DLL动态链接库提供给他人使用。其实这是一件so easy的事情,但第一次做,踩了几个坑,把这个过程记录下来。


    首先进行方法上的列举和选择,基本上有这么几种:

    1. 在Qt Creator下依赖QtCore模块,个人理解是很多原生C++中的容器都在Qt中重新进行了包装,所以需要依赖这个模块。
    2. 在Qt Creator下不依赖任何模块,进行纯C++代码DLL库的制作。
    3. 在VS下制作DLL。

    选择方法时考虑的因素:

    1. 既然是作为第三方库供其他人使用,当然要具有通用性,因此感觉上自然不想依赖任何Qt中的东西。因此要制作原生C++代码的DLL。
    2. 认为在VS下进行C++代码的开发和DLL库的制作,显然是当前更主流的方式。因此选择了第3个方法。

    备注:

    1. 这3个方法全部都能在网上搜到图文介绍,我这里只记录一下自己踩过的坑。
    2. 其实无论是否依赖QtCore这类模块,最终生成的DLL库肯定都是二进制可执行代码。不过是开发人员写的代码不同,中间的编译阶段肯定也都帮我们做好了处理,保证二进制代码是OK的。

    确定好方向之后,那就开始干吧~


    我把使用DLL库的过程分为了三个阶段:

    1. 首先你的应用程序要加载这个第三方库,library load
    2. 在加载库成功的前提下,进一步要解析库中的函数符号,就是要找到这个函数接口,一般是一个函数指针
    3. 找到了函数地址之后,就可以调用并执行函数了,这就进入了函数体

    楼主在2和3这两个阶段都踩了坑。

    其实一开始我是在Qt Creator中先试着做了一个DLL,然后在Qt Creator下调用自己做的这个DLL。程序运行时要动态链接这个库了,结果library load成功,但是函数解析失败。具体原因我没有排查到,当时怀疑可能是这个DLL里面的函数名字发生了变化,曾试着使用一些工具查看这个DLL里面的具体函数,最终没有行得通,放弃了。


    然后转向了VS下。这时制作出来的DLL已经能够解析函数成功了,但是程序运行时却崩溃了,提示我发生了段错误。


    于是开始在VS下调试我这段代码。PS:此时是踩到了最大的这个坑。


    同一段代码,在不同的IDE下编译器的解释确实不同,对语法的检查也不同。


    经过调试之后,在VS下自己的测试用例已经跑得通了。


    但是我的应用程序调用这个DLL还是段错误。此时非常纳闷,但很快想到了在我以往的经验中,段错误往往是跟对象空间扯上关系的,于是我想到了一个隐藏的错误。


    我的DLL库,因为是C++代码,进行数据处理的那几个函数都封装成类的成员函数了,而应用程序在运行时绕过了类对象直接就调用成员函数了,这显然是不对的,因为成员函数必须通过类的实例来调用。想一想,类对象的空间根本就不存在,怎么能调用它的成员函数呢,这也就是引起段错误的原因。


    所以这个可以说,是自己在库的设计上存在的问题。


    最终去掉了类,直接裸露了函数接口,这个问题就解决了。PS:这样其实有点像C的风格,哈哈~

    展开全文
  • 当你开发了一个库的时候,就需要给库...然后点击创建项目,项目的目录最好位于dll项目下,然后关联dll,就可以点击build了   效果如下:   转载于:https://www.cnblogs.com/dathlin/p/9310334.html

     

    当你开发了一个库的时候,就需要给库开发一个api文档,微软提供了一个C#库的自动生成工具。我在使用的过程中记录了相关的信息,以供大家学习和查阅,如有不正之处,欢迎指出。

     

    首先先下载一个软件,下载地址在github上:https://github.com/EWSoftware/SHFB/releases

    下载最新的版本即可。到本地后开始安装

    先安装上面的msi文件,安装好以后,点击下面的文件

    现在还是打开不了的,还需要下载个东西

     

     这里有个提示很重要:意思是如果想使用单独的GUI程序,需要安装Microsoft Build Tools 2015,如果你想仅仅使用visual studio,那么这部分是可以忽略的。

    点击下载安装这个即可。

     

    然后打开:这时候是不会报错了。

     

    然后点击创建项目,项目的目录最好位于dll项目下,然后关联dll,就可以点击build了

     

    效果如下:

     

    转载于:https://www.cnblogs.com/dathlin/p/9310334.html

    展开全文
  • 如何用QT制作dll

    2019-08-22 11:23:59
    windows下如何使用QT编写dll程序https://blog.csdn.net/normallife/article/details/5397980 Qt如何使用lib库封装界面?https://jingyan.baidu.com/article/27fa73265018c246f9271f40.html?qq-pf-to=pcqq.c2c Qt...
    展开全文
  • DLL即动态链接库(Dynamic-Link Library)的缩写,相当于Linux下的共享对象。Windows系统中大量采用DLL机制,甚至内核的结构很大程度依赖于DLL机制。Windows下的DLL文件和EXE文件实际上是一个概念,都是PE格式的二...
  • 如何用VB制作DLL文件

    2012-05-08 21:52:42
    1.新建一个ActiveX Dll,工程名字为vbmytestdll,类模块名字为mytestdll 2.类模块内容只有一个函数,主要返回DLL的HELLO WORLD Public Function dlltest1() As String dlltest1 = "HELLO WORLD" End ...
  • 但是,您必须记住一件事-在使用DLL之前,您需要实际从JAR中提取这些DLL,并将它们转储到某个硬盘上,否则您将无法加载这些DLL。因此,基本上-我为客户做了JNI项目,在那里我将使用这样的JAR包装在战争中。但是-在...
  • 不过,你必须记住一件事-在使用DLL之前,你需要先从JAR中提取这些DLL,然后将其转储到硬盘上的某个位置,否则你将无法加载这些DLL。所以基本上-我为客户端做了JNI项目,我将在战争中使用这种打包的jar。但是-在运行...
  • 如何将icon等资源嵌入到dll制作moricons.dlldll文件
  • 如何在.Net的C#中制作DLL文件 | 浏览:496 | 更新:2014-06-28 12:22 1 2 3 4 5 6 7 分步阅读 在C#等.net编程中,我们经常需要制作类库DLL文件,这样可以方便...
  • 利用C++制作dll并调用dll

    万次阅读 2016-05-26 15:58:40
    Abstract:本文讲解如何利用c++制作dll并调用dll,用一个简单的加法函数来作为演示,并给出图形界面。1. 打开vs(我用的是vs2010),然后点击文件—>文件—>新建—>项目,选择Win32控制台应用程序。并输入你想建立的...
  • 在C#等.net编程中,我们经常需要制作类库DLL文件,这样可以方便的将各种方法打包使用,有利于程序升级和方法复用,这里就介绍一下DLL文件生成和使用的方法。以及读取ini文件...
  • 当我们用C++给Python编写了扩展,可以通过下面的命令来编译和安装: python setup.py build install 这个时候打开Python27\Lib\...这篇文章要分享下如何把pyd和DLL文件一起打包,发布,以及通过pip来安装。 ...
  • 如何dll文件导出对应的lib文件? Visual C++ 开发工具提供了两个命令行工具,一个是dumpbin.exe,另一个是lib.exe。利用这两个工具即可从dll导出其对应的lib。 1、在命令行执行: dumpbin /exports yourdll.dll >...
  • 在C#等.net编程中,我们经常需要制作类库DLL文件,这样可以方便的将各种方法打包使用,有利于程序升级和方法复用,这里就介绍一下DLL文件生成和使用的方法。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 385
精华内容 154
关键字:

如何制作dll