这一篇是错误的,在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;
}
}
}