C++ Exercises(七)

Dll的示例代码

namespace  MathFuncs
{
    
class  MyMathFuncs
    {
    
public :
        
//  Returns a + b
         static  __declspec(dllexport)  double  Add( double  a,  double  b);

        
//  Returns a - b
         static  __declspec(dllexport)  double  Subtract( double  a,  double  b);

        
//  Returns a * b
         static  __declspec(dllexport)  double  Multiply( double  a,  double  b);

        
//  Returns a / b
        
//  Throws DivideByZeroException if b is 0
         static  __declspec(dllexport)  double  Divide( double  a,  double  b);
    };
}

#include 
" MathFuncsDll.h "

#include 
< stdexcept >

using   namespace  std;

namespace  MathFuncs
{
    
double  MyMathFuncs::Add( double  a,  double  b)
    {
        
return  a  +  b;
    }

    
double  MyMathFuncs::Subtract( double  a,  double  b)
    {
        
return  a  -  b;
    }

    
double  MyMathFuncs::Multiply( double  a,  double  b)
    {
        
return  a  *  b;
    }

    
double  MyMathFuncs::Divide( double  a,  double  b)
    {
        
if  (b  ==   0 )
        {
            
throw   new  invalid_argument( " b cannot be zero! " );
        }

        
return  a  /  b;
    }
}

//  MyExecRefsDll.cpp : 定义控制台应用程序的入口点。
//

#include 
" stdafx.h "
#include 
" MathFuncsDll.h "
#include 
< iostream >
using   namespace  std;


int  _tmain( int  argc, _TCHAR *  argv[])
{
    
double  a  =   7.4 ;
    
int  b  =   99 ;

    cout 
<<   " a + b =  "   <<
        MathFuncs::MyMathFuncs::Add(a, b) 
<<  endl;
    cout 
<<   " a - b =  "   <<
        MathFuncs::MyMathFuncs::Subtract(a, b) 
<<  endl;
    cout 
<<   " a * b =  "   <<
        MathFuncs::MyMathFuncs::Multiply(a, b) 
<<  endl;
    cout 
<<   " a / b =  "   <<
        MathFuncs::MyMathFuncs::Divide(a, b) 
<<  endl;
    cin
>> a;

    
return   0 ;
}



 

你可能感兴趣的:(C++,dll)