动态库的练习,看起来糟糕透了,不过竟然能运行。

这一篇是错误的,在win下建立动态链接库文件显然没有这样简单,而且用visual studio C比用g++要实际的多。

#include <vector>
#include <iostream>
#include "calculator.h"
using namespace std;

namespace mybase{
	void helloworld(void) {
		cout << "Hello, World!" << endl;
	}
}

int main(void) {
	mybase::helloworld();
	using namespace mybase;
	helloworld();
	Calculator c;
	cout << c.add(800, 300) << endl;
	cout << c.sub(800, 300) << endl;
	cout << c.div(5, 4) << endl;
	cout << c.div(4, 0) << endl;
}

/*
C:\Users\Administrator>g++ -shared -fPIC -o libcalculator.dll calculator.h

C:\Users\Administrator>g++ -o calculator.exe -L. test13.cpp

C:\Users\Administrator>calculator.exe
Hello, World!
Hello, World!
1100
500
1
Divide Error!
1

*/
#include <iostream>

using namespace std;

namespace mybase{
	class Calculator{
	public:
		char add(char a, char b){
			return (a + b);
		}
		int add(int a, int b){
			return (a + b);
		}
		double add(double a, double b){
			return (a + b);
		}
		int sub(int a, int b);
		int _div(int a, int b);
		int div(int a, int b);
	};
}

namespace mybase{
	int Calculator::sub(int a, int b){
		return (a - b);
	}
	int Calculator::_div(int a, int b){
		if(b == 0) {
			throw "Divide Error!";
		}
		return (a / b);
	}
	int Calculator::div(int a, int b){
		try{
			_div(a, b);
		}catch(char const* e) {
			cout << e << endl;
		}
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_39410618

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值