现在位置: 首页 > dll
2015-09-20 21:34 工业·编程 ⁄ 共 4297字 暂无评论
MFC DLL应用程序类型分为以下三种: (1)使用共享MFC DLL的规则DLL (2)带静态链接MFC的规则DLL (3)MFC扩展DLL 下面重点解释一下这些DLL的含义区别: 一,规则DLL 首先谈谈所谓的"规则DLL":"规则DLL"是由"Regular DLL"翻译而来的。它实际上体现出来两方面的本质: (1)该DLL是基于MFC的; (2)该DLL是"规则"的,它不同于"MFC扩展DLL",在规则DLL中内部虽然是可以使用MFC,但是规则...
阅读全文
2015-07-31 15:48 工业·编程 ⁄ 共 1622字 暂无评论
在产品开发过程中,我们经常会需要对外提供DLL的接口,这种接口可以在产品开是设计好的,也可能是在基本功能开发完成进行封装的,这里将介绍一种比较基本常用的封装方法,供初学者参考。欢迎提出好的改进方式。 先提几点要求,包含我们的目标、要求和本文范围等, 1、对外提供的文件清晰,只包含必需的头文件、DLL文件及LIB文件 2、不暴露用户不需要知道的多余信息 3、这里只设计封装过程与思路,包含DLL相关的实现以及代码工...
阅读全文
2015-07-30 13:47 工业·编程 ⁄ 共 3912字 暂无评论
方案一:个人认为算是比较“循规蹈矩”的一种 在DLL中写好接口的实现代码后,然后提供一个申明接口的头文件供调用者使用,我想一般都会这样写: 第一步:定义需要的宏(后面会介绍该宏的作用) #ifdef __DLLNAME_XX #define _XX_LOADDLL     extern "C" _declspec(dllexport) #else       //__DLLNAME_XX #define _XX_LOADDLL     extern "...
阅读全文
今天在完成一个功能模块时,遇到了一个很棘手的问题,大概是这样的: 主模块(EXE)的一个DLL中有一个函数FunA(),该函数需要查询数据库,得到记录集做处理,而数据库的操作又单独封装导出了一个DLL,由于记录集是变长的(不知道有多少记录),所以采用vector对象来传递数据。大概的过程如下: boolFunA_EXE() { vector<T> vecRet;        string  strSql = “SELECT * FROM .....”;  ...
阅读全文
这段时间,在工程中将一些功能封装成动态库,需要使用动态库接口的时候.使用了STL的一些类型作为参数. 比方string,vector,list.但是在使用接口的时候. class exportClass {      bool dll_funcation(string &str); }; //上面这个类只是一个形式,具体内容不写出来了.这个类被导出 当我在使用这个库的时候.这样写代码: string str="": exportClass tmp; tmp.dll_function(str); 这个函数能成功...
阅读全文
2015-07-27 10:39 工业·编程 ⁄ 共 2888字 暂无评论
STL跨平台调用会出现很多异常,STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下面是详细解释。 原因分析: 一句话-----如果任何STL类使用了静态变量(无论是直接还是间接使用),那么就不要再写出跨执行单元访问它的代码。 除非你能够确定两个动态库使用的都是同样的STL实现,比如都使用VC同一版本的STL,编译选项也一样...
阅读全文
2015-06-30 20:32 工业·编程 ⁄ 共 1696字 暂无评论
Qt如何调用VC++生成的动态链接库?假设当前有VC++编译器生成的动态库文件testdll.h,testdll.lib和testdll.dll。 testdll.h文件源码如下: #ifdef TESTDLL_EXPORTS #define TESTDLL_API __declspec (dllexport) #else #define TESTDLL_API __declspec (dllimport) #endif // 此类是从 testdll.dll 导出的 class TESTDLL_API Ctestdll { public: Ctestdll(void); public: int Add(int a, int b) {return a+b;} int Sub(int a, int...
阅读全文
2015-06-25 17:43 工业·编程 ⁄ 共 1396字 暂无评论
最近在做基于组件化MFC界面的开发,需要把界面封装到动态库中。 相关阅读     ----VC++ MFC DLL动态链接库编写详解 一:工程创建步骤 1.创建MFC DLL工程,选择 “在共享 DLL 中使用 MFC”。 2.运行时库选择:c/c++-->代码生成-->运行库  “多线程调试 DLL (/MDd)”。 二:定义导出界面基类 定义导出界面接口类,待导出界面需要继承该接口类,并实现该接口定义的虚函数。如下: class IHpDllWin :public ...
阅读全文
2015-01-05 14:26 工业·编程 ⁄ 共 1696字 暂无评论
Qt如何调用VC++生成的动态链接库?假设当前有VC++编译器生成的动态库文件testdll.h,testdll.lib和testdll.dll。 testdll.h文件源码如下: #ifdef TESTDLL_EXPORTS #define TESTDLL_API __declspec(dllexport) #else #define TESTDLL_API __declspec(dllimport) #endif // 此类是从 testdll.dll 导出的 class TESTDLL_API Ctestdll { public: Ctestdll(void); public: int Add(int a, int b) {return a+b;} int Sub(int a, int b...
阅读全文
2014-07-05 06:58 工业·编程 ⁄ 共 1266字 暂无评论
因为需要写一些DLL,且DLL编译选择/MT方式,DLL会导出函数,函数中会返回指针。      如下所示:(示例仅供参考,呵呵)      int * WINAPI Export()    {          return new int;    }      现在我的EXE中会使用这个函数,代码如下:(如何获取函数地址的方法我就不赘述)     ...
阅读全文