数学建模社区-数学中国

标题: C/C++调用Lu的入门程序 [打印本页]

作者: forcal    时间: 2011-10-19 21:30
标题: C/C++调用Lu的入门程序
C/C++调用Lu的入门程序/ g+ @! L8 n& r( T9 X+ d# O$ ]

  G; s( a0 k( Y9 U仅需要以下支持文件:
& `; f/ s' @3 Q& C: t. f# |4 N9 Q# E! l& J: F$ j  Q
1、头文件lu32.h。7 d3 p1 x2 Y+ ?; X: T
2、导入库lu32.lib。
; O. ]+ m! M  E/ Z3、核心库lu32.dll。
  1. #include <windows.h>& V- ^) z6 p" J+ }5 M, \
  2. #include <iostream>: B  g; m4 _$ |6 E- j, M
  3. #include <math.h>- \7 `- N+ `7 V/ Y2 r
  4. #include "lu32.h"  //Lu头文件
    3 }0 b1 x0 e: c9 [# p

  5. + W% k2 J- E$ ]( {  }1 e, _
  6. #pragma comment( lib, "lu32.lib" )
    * l) \7 k. j$ K: M% L0 V
  7. 8 q7 c7 n' w! i( e. b5 o- `6 k
  8. using namespace std;2 N& M5 K5 F3 L+ k% K
  9. 3 g6 \: n% q; G5 P# j3 D
  10. void main(void)3 ]+ A+ l( j+ x9 ^# G* ~' H
  11. {- \# d7 W! i$ g" A8 s
  12.     void *hFor;    //表达式句柄1 l. y% t) K; x% B& t8 ^# Z
  13.     luINT nPara;   //存放表达式的自变量个数
    7 z0 i- k: Z- \6 j8 V% v& P* [
  14.     LuData *pPara; //存放输入自变量的数组指针* E& ^/ v) E' B8 m, n
  15.     LuData Val;    //存放表达式的值
    & f$ P: Y' E: z& x; e/ ]
  16.     luINT ErrBegin,ErrEnd; //表达式编译出错的初始位置和结束位置
    " f  {8 y$ N  q7 [
  17.     int ErrCode;   //错误代码
    0 h4 \# w1 ?9 M0 q0 r. z
  18.     wchar_t ForStr[]=L"f(x,y)=x+y"; //字符串表达式
    6 p9 }/ c# b* T
  19.     int i;$ z( E$ Z3 I) |7 \% h/ T* ?5 c
  20. 8 {6 N( v0 P' {& h9 C! s& }
  21.     if(!InitLu()) return; //初始化Lu2 V' c* V8 K/ i$ S  f! V

  22. 7 w7 L' W5 i, Y( u* ]) h
  23.     ErrCode=LuCom(ForStr,0,0,0,hFor,nPara,pPara,ErrBegin,ErrEnd); //编译表达式
    6 p1 V2 Z' k% N$ f2 z9 \
  24.     if(ErrCode)' n* K9 u5 T/ t1 E/ e0 V( R" C
  25.     {
    1 `+ {/ _; p/ k1 z  I* R# s- y
  26.         cout<<"表达式有错误!错误代码:"<<ErrCode<<endl;
    : N  m3 ?' k1 `
  27.     }' J( i0 s; X2 `1 g9 K3 d/ d) e( p
  28.     else( U$ b: [$ V" l8 H% k
  29.     {
    " _0 @9 P% n+ k9 o6 I( N0 L, b5 ]& _
  30.         for(i=0;i<=nPara;i++) //表达式自变量赋值,均赋值为1  k9 Y+ w/ W! _6 E0 i
  31.         {/ `, S* j0 P5 c( X- D5 V5 }4 l% S
  32.             pPara[i].BType=luStaData_int64; pPara[i].VType=luStaData_int64; pPara[i].x=1;& }" O+ u3 `; x  z
  33.         }
    6 z/ M: I$ a. o
  34.         Val=LuCal(hFor,pPara); //计算表达式的值
    8 G+ P# |3 ^. c6 |8 Y: i5 {
  35.         cout<<Val.x<<endl;
    , c  k8 t. A9 T6 `& X: z. P: b
  36.     }7 K  |3 s; b, \* n3 q$ r! c
  37.     FreeLu();      //释放Lu
    2 A, X+ K5 p* H+ C9 T+ U
  38. }
复制代码
运行结果:, `( O9 w' }3 H, g' x, M1 p+ t

- m' ?- l6 v2 _. T7 {2
- N, G' @3 }8 T0 V- `6 k+ R请按任意键继续. . .
( z6 {3 D9 [) a0 u




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5