现在想建立两个类,第一个类叫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文件夹中。