多个类封装dll库

现在想建立两个类,第一个类叫Add,定义四则运算,封装成dll库,第二个类叫做pingfang,需要调用第一个类中的函数,Add封装后再被pingfang调用其dll库,再次封装。建立add的dll工程

add.h文件

#include <string>
#pragma once
class _declspec(dllexport) Add
{
public:
Add();
~Add();
int add(int ,int );
int jianfa(int ,int );
int chengfa(int ,int );
int chufa(int ,int );

};


add.cpp文件

#include "add.h"
Add::Add()
{


}
Add::~Add(){}
int Add::add(int a,int b)
{


return(a+b);
}


int Add::jianfa(int a,int b)
{


return(a-b);
}


int Add::chengfa(int a,int b)
{


return(a*b);
}


int Add::chufa(int a,int b)
{


return(a/b);
}

生成add.dll add.lib


建立pingfang的dll工程,把add.h add.dll add.lib 拷贝到文件夹中 附加库目录用相对路径 添加lib 和.h的目录


pingfang.h

#include"add.h"
class _declspec(dllexport) pingfang
{
public:
pingfang();
~pingfang();
int hecimi(int ,int );

};

pingfang.cpp

#include "add.h"
#ifndef ADD_H
#define ADD_H
#endif
#include "pingfang.h"
pingfang::pingfang()
{


}
pingfang::~pingfang()
{


}
int pingfang::hecimi(int a,int b)
{
Add at;
int c,d;
c=at.add(a,b);
d=at.chengfa(c,c);
return d;
}

编译后,在最高级的Debug文件夹中 加入add.dll

建立测试工程 testcimi.dll

test.cpp

#include <iostream>
#include "add.h"
#include "pingfang.h"


using namespace std;
int main()
{
pingfang pg;
int a,b;
cout<<"cin in a b"<<endl;
cin>>a>>b;
cout<<"out is "<<pg.hecimi(a,b)<<endl;

return 0;
}


建立 test文件夹,把add.dll add.h add.lib pingfang.dll pingfang.h pingfang.lib放入 ,test工程属性把.h 和lib目录写入 相对路径 依赖库是add.lib pingfang.lib

编译后把add.dll和pingfang.dll放入Debug文件夹中。









### 回答1: C++中的是面向对象编程的基本单元,其中封装是其最重要的特征之一。封装可确保数据和函数都能被保护起来,不会被外部访问和修改,而只能通过定义的公共接口来操作这些数据。 Dll是动态链接(Dynamic Link Library)的缩写,它是一种文件,可以在编译时链接到可执行文件,也可以在运行时加载。封装在动态链接中使用可以更好地保障其安全性和灵活性。 在C++中,封装可以被编译成动态链接,也称为(Class Library)。这种方式可以使开发者将代码分成多个文件,并且仅将需要的文件链接到可执行文件中。这种方式可以在多个程序之间共享定义和函数实现,减少代码重复并提高代码的可维护性。 同时,如果只需修改中的某个的实现,而其他的实现没有改变,那么只需重新编译该就可以了,而不用重新编译所有代码。 在使用动态链接时,需要使用C++的导出和导入关键字将和函数导出到DLL中,并在可执行程序中使用它们。这些关键字包括__declspec(dllexport)和__declspec(dllimport)等。 总之,在C++中使用封装dll可以使代码变得更加安全,可维护性更高,并有效地减少代码重复。 ### 回答2: C语言中,封装需要使用结构体和函数来实现,其中结构体表示对象的属性,而函数则表示对象的方法。为了更好地维护代码,实现代码的复用,我们可以将封装通过dll动态链接的方式实现。 首先,我们需要定义一个包含结构体和函数声明的header文件,用来描述的结构和功能,然后将这个header文件编译成动态链接,供其他程序调用。这样做的好处在于,只要我们在其他程序中引用了这个dll,就可以直接使用这个,无需重新编写代码,提高了代码的复用性。 同时,在dll封装中,我们也需要注意一些问题,比如动态链接的版本问题,如果不同的程序引用了不同版本的dll,可能会出现运行错误,所以需要在编写dll时考虑这些问题。在使用dll时,也需要注意动态链接的加载和释放问题,防止出现内存泄漏等问题。 总之,通过dll封装,可以更加方便地实现C语言中的封装,提高代码的复用性和可维护性,但需要在实现过程中注意一些问题,提高代码的质量。 ### 回答3: C++封装 DLL是一种将打包为可重用代码的方式。DLL全称为Dynamic Link Library,动态链接。它是一种Windows系统下的动态链接文件,提供了一种动态加载可以在运行时执行的代码和数据的方式。使用DLL的好处在于,它可以节省资源并提高程序的灵活性。 C++封装 DLL可以将封装为可直接调用的动态链接。这样,其他程序就可以直接使用这个,而无需自行编写相应的代码。使用DLL可以使程序员们更加专注于自己的工作而不必担心代码的实现细节。 封装DLL还有另外一些优点,例如:DLL文件可以被多个应用程序所共享,因此可以减少内存的消耗,提高程序的运行效率。同时,也可以在项目开发过程中进行独立开发和单元测试,这样可以更好地提高程序的质量和可维护性。 总之,C++封装 DLL是一种非常有用的开发技术,它能够有效地提高程序的复用性、可移植性和可维护性。因此,对于需要维护大型项目的开发团队来说,封装DLL是一种非常具有实际意义的开发策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值