- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
MyEquation.cpp
上传用户:weisheen
上传日期:2022-07-09
资源大小:19390k
文件大小:1k
源码类别:
ActiveX/DCOM/ATL
开发平台:
Visual C++
- // MyEquation.cpp : Implementation of CMyEquation
- #include "stdafx.h"
- #include "ExEquation.h"
- #include "MyEquation.h"
- #include <cmath>
- /////////////////////////////////////////////////////////////////////////////
- // CMyEquation
- STDMETHODIMP CMyEquation::InterfaceSupportsErrorInfo(REFIID riid)
- {
- static const IID* arr[] =
- {
- &IID_IMyEquation
- };
- for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
- {
- if (InlineIsEqualGUID(*arr[i],riid))
- return S_OK;
- }
- return S_FALSE;
- }
- STDMETHODIMP CMyEquation::solve(Equation* equ,Root** roots)
- {
- float delta = equ->b*equ->b-4*equ->a*equ->c;
- if(delta>=0)
- {
- *roots=(Root*)::CoTaskMemAlloc(sizeof(roots));
- float temp=sqrt(delta);
- (*roots)->r1=-0.5*(equ->b+temp)/equ->a;
- (*roots)->r2=-0.5*(equ->b-temp)/equ->a;
- return S_OK;
- }
- else
- {
- this->Error(::SysAllocString(L"这个方程莫有根"));
- return S_FALSE;
- }
- }