随笔分类 -  Qt-Lib-DLL

摘要:作者:渡世白玉链接:http://www.zhihu.com/question/29030777/answer/59378712来源:知乎著作权归作者所有,转载请联系作者获得授权。 可以,十分可以,你可以直接包含别人的源码,或者调用库。给你几个我github上的别的库的封装:QAsioSocket: 阅读全文
posted @ 2016-07-22 20:39 findumars 阅读(1642) 评论(0) 推荐(0) 编辑
摘要:调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同。Windows提供了两种将DLL映像到进程地址空间的方法: 1. 隐式的加载时链接 这种方法需要DLL工程经编译产生的LIB文件,此文件中包含了DLL允许应用程序调用的所有函数 阅读全文
posted @ 2016-07-07 16:40 findumars 阅读(1262) 评论(0) 推荐(0) 编辑
摘要:DLL的优点 简单的说,dll有以下几个优点: 1) 节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中。如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,像dll中的全局变量这 阅读全文
posted @ 2016-07-03 06:26 findumars 阅读(6595) 评论(0) 推荐(0) 编辑
摘要:1. 使用钩子SetWindowHookEx注入时,设置钩子的代码必须和钩子回调函数在注入DLL中,并且调用CallNextHookEx时第一个参数必须为钩子的句柄,否则只有一个进程响应钩子。 2.关于App_Init_Dlls,注册表路径:HKEY_LOCAL_MACHINE\Software\M 阅读全文
posted @ 2016-07-03 06:13 findumars 阅读(615) 评论(0) 推荐(0) 编辑
摘要:使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC 第一种顾名思义。 第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。 阅读全文
posted @ 2016-07-03 05:46 findumars 阅读(1693) 评论(0) 推荐(0) 编辑
摘要:第一种就直接导出函数名如下代码: #ifdef__cplusplus #define TEXPORT extern "c" _declspec(dllexport) #dlse #define TEXPORT _declspec(dllexport) TEXPORT BOOL FUN();//这就是 阅读全文
posted @ 2016-07-02 21:43 findumars 阅读(7468) 评论(0) 推荐(0) 编辑
摘要:WinRar官方提供了源码(http://www.rarlab.com/rar_add.htm);如果自己想要修改里面的内容就要重新生成DLL和LIB,我在网上找了很多资料都没有说得很清楚。花一两天的时间才把他生成成功。网上的资料都给了一些误导,所以改了很久才完成。现在给出正确的步骤,给这方面的学习 阅读全文
posted @ 2016-07-02 20:39 findumars 阅读(887) 评论(0) 推荐(0) 编辑
摘要:当一个工程依赖第三方动态库时,这时vs编译出来后,运行会提示缺少动态库。解决方法: 项目->属性->调试: 工作目录:指定程序运行时的目录 环境:指定程序运行时的环境变量 我们可以在环境变量PATH中加入第三方依赖库的路径。 例如:加入qt的动态库: PATH=C:\Qt\Qt5.2.1\5.2.1 阅读全文
posted @ 2016-06-29 04:42 findumars 阅读(1046) 评论(0) 推荐(0) 编辑
摘要:声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的。并且用我前两篇有关DLL文章里面的方法,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下: void HelloWorld(); //函数内部调用Win32 API,功能是弹出一个hellowo 阅读全文
posted @ 2016-05-23 05:21 findumars 阅读(556) 评论(0) 推荐(0) 编辑
摘要:const 和 static 变量,可以放在头文件中 const对象默认是static的,而不是extern的,所以即使放在头文件中声明和定义。多个cpp引用同一个头文件,互相也没有感知,所以不会导致重复定义。 类(class)的定义,可以放在头文件中 用类创建对象的时候,编译器要知道对象如何布局才 阅读全文
posted @ 2016-05-17 23:08 findumars 阅读(350) 评论(0) 推荐(0) 编辑
摘要:共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。共有 阅读全文
posted @ 2016-05-06 11:10 findumars 阅读(231) 评论(0) 推荐(0) 编辑
摘要:Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序编译的过程 .o文件(目标文件) 创建atoi.o 使用atoi.o .a文件(静态库文件) 创建atoi.a 使用atoi.a .so文件(共享库文件) 创建ato 阅读全文
posted @ 2016-04-22 16:45 findumars 阅读(20535) 评论(1) 推荐(1) 编辑
摘要:Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件。ActiveQt包含了两个组件QAxContainer和QAxServer。 l QAxContainer允许我们使用COM对象,并且 阅读全文
posted @ 2016-04-10 05:08 findumars 阅读(7496) 评论(0) 推荐(0) 编辑
摘要:VC生成的DLL给QT调用,有两种方式,一种是隐式调用调用(使用.lib文件方式): ① 在*.pro工程文件中添加VC生成的lib文件路径时,或者使用一个绝对路径,如: 或者使用一个相应路径,如: 注:该相对路径指的是build-VCDLL_QTXXX-Desktop_Qt_5_5_0_MSVC2 阅读全文
posted @ 2016-03-25 21:24 findumars 阅读(638) 评论(0) 推荐(0) 编辑
摘要:打开VS2008创建一个dll项目(创建了一个QT Library项目),新建头文件q4dapplication.h定义纯虚类: #ifndef Q4DAPPLICATION#define Q4DAPPLICATION class Q4DApplication { public: virtual i 阅读全文
posted @ 2016-03-17 01:42 findumars 阅读(1060) 评论(0) 推荐(0) 编辑
摘要:在某项目中,有一些静态库,这些静态库中有类型命名的函数GET_XXX。在一次项目结构调整的时候,我想将调用这静态库的代码编译成DLL,并且将这些Get函数导出,我就直接就这些函数前面添加了_declspec(dllexport), 然后代码结构就成为: 静态库A: 包括很多 _declspec(dl 阅读全文
posted @ 2016-02-03 20:21 findumars 阅读(1097) 评论(0) 推荐(0) 编辑
摘要:博客分类: Dot net VC2008 DLL Dot net 生成、使用DLL看起来简单,但做起来才发现还是有一些地方需要注意的。 1. 打开VS2008,新建一个VC工程,选择Win32类型,Win32项目: 2. 应用程序类型选择DLL,附加选项选择到处符号,公共头文件不要选择,然后点完成即 阅读全文
posted @ 2016-02-01 21:04 findumars 阅读(965) 评论(0) 推荐(0) 编辑
摘要:前面的例子都是使用的系统提供的拖放对象 QMimeData 进行拖放数据的存储,比如使用 QMimeData::setText() 创建文本,使用 QMimeData::urls() 创建 URL 对象。但是,如果你希望使用一些自定义的对象作为拖放数据,比如自定义类等等,单纯使用 QMimeData 阅读全文
posted @ 2016-02-01 20:56 findumars 阅读(1098) 评论(0) 推荐(0) 编辑
摘要:前段时间说了Qt一些类库的使用,今天来换一下口味,来看一下程序设计的问题。今天来说的是关于共享库 shared library。 如果你打开一些 Windows 应用程序的目录,你会发现有很多程序的 exe 文件都很小,大约几百K 的样子,并且目录中不仅仅只有一个 exe 文件,还包含着一大堆 dl 阅读全文
posted @ 2016-02-01 20:49 findumars 阅读(974) 评论(0) 推荐(0) 编辑
摘要:记录一下QT5 动态链接库的创建和使用在文章的最后有完成的代码供下载1.创建动态链接库先新建一个库项目选择chose进入下一下页面,类型选择共享库,输入一个名称:我输入的是sld再点击下一步到如果这里我们需要QtGui所以也勾选上了再点击下一步直到完成我们在.pro文件里加上DESTDIR =..\... 阅读全文
posted @ 2016-01-14 05:51 findumars 阅读(14524) 评论(0) 推荐(0) 编辑