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,但是规则...
dll阅读全文
2015-07-31 15:48
⁄ 工业·编程
⁄ 共 1622字
在产品开发过程中,我们经常会需要对外提供DLL的接口,这种接口可以在产品开是设计好的,也可能是在基本功能开发完成进行封装的,这里将介绍一种比较基本常用的封装方法,供初学者参考。欢迎提出好的改进方式。
先提几点要求,包含我们的目标、要求和本文范围等,
1、对外提供的文件清晰,只包含必需的头文件、DLL文件及LIB文件
2、不暴露用户不需要知道的多余信息
3、这里只设计封装过程与思路,包含DLL相关的实现以及代码工...
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 "...
dll阅读全文
2015-07-29 05:45
⁄ 工业·编程
⁄ 共 863字
今天在完成一个功能模块时,遇到了一个很棘手的问题,大概是这样的:
主模块(EXE)的一个DLL中有一个函数FunA(),该函数需要查询数据库,得到记录集做处理,而数据库的操作又单独封装导出了一个DLL,由于记录集是变长的(不知道有多少记录),所以采用vector对象来传递数据。大概的过程如下:
boolFunA_EXE()
{
vector<T> vecRet;
string strSql = “SELECT * FROM .....”;
...
dll, stl阅读全文
2015-07-28 11:27
⁄ 工业·编程
⁄ 共 2452字
这段时间,在工程中将一些功能封装成动态库,需要使用动态库接口的时候.使用了STL的一些类型作为参数.
比方string,vector,list.但是在使用接口的时候.
class exportClass
{
bool dll_funcation(string &str);
};
//上面这个类只是一个形式,具体内容不写出来了.这个类被导出
当我在使用这个库的时候.这样写代码:
string str="":
exportClass tmp;
tmp.dll_function(str);
这个函数能成功...
dll阅读全文
2015-07-27 10:39
⁄ 工业·编程
⁄ 共 2888字
STL跨平台调用会出现很多异常,STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下面是详细解释。
原因分析:
一句话-----如果任何STL类使用了静态变量(无论是直接还是间接使用),那么就不要再写出跨执行单元访问它的代码。 除非你能够确定两个动态库使用的都是同样的STL实现,比如都使用VC同一版本的STL,编译选项也一样...
dll阅读全文
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...
dll, Qt阅读全文
2015-06-25 17:43
⁄ 工业·编程
⁄ 共 1396字
最近在做基于组件化MFC界面的开发,需要把界面封装到动态库中。
相关阅读
----VC++ MFC DLL动态链接库编写详解
一:工程创建步骤
1.创建MFC DLL工程,选择 “在共享 DLL 中使用 MFC”。
2.运行时库选择:c/c++-->代码生成-->运行库 “多线程调试 DLL (/MDd)”。
二:定义导出界面基类
定义导出界面接口类,待导出界面需要继承该接口类,并实现该接口定义的虚函数。如下:
class IHpDllWin :public ...
dll, 界面设计阅读全文
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...
dll, Qt阅读全文
2014-07-05 06:58
⁄ 工业·编程
⁄ 共 1266字
因为需要写一些DLL,且DLL编译选择/MT方式,DLL会导出函数,函数中会返回指针。
如下所示:(示例仅供参考,呵呵)
int * WINAPI Export()
{
return new int;
}
现在我的EXE中会使用这个函数,代码如下:(如何获取函数地址的方法我就不赘述)
...
dll阅读全文