数学建模社区-数学中国

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

作者: forcal    时间: 2011-10-19 21:30
标题: C/C++调用Lu的入门程序
C/C++调用Lu的入门程序
3 d' m2 [- ?0 v% L+ {/ o5 H7 L5 l1 j% E& ?
仅需要以下支持文件:9 ?5 j; i* E; U) P& ^7 I7 `" ~6 m
1 D: [8 j( g) d) @
1、头文件lu32.h。* }8 K3 u4 A9 B) ]6 ?( b
2、导入库lu32.lib。
' M4 U* k: v4 S1 a( o3、核心库lu32.dll。
  1. #include <windows.h>
    , G4 s- W: h" X6 |& z3 g1 X
  2. #include <iostream>
    - G! B* i1 ]! h: g& @( C) o
  3. #include <math.h>. C9 J3 Q; f' A$ z. Y7 k
  4. #include "lu32.h"  //Lu头文件+ k5 M" T" ?' s3 A  l
  5. 8 p- ~6 \% I$ z# I$ P% h( j
  6. #pragma comment( lib, "lu32.lib" )5 D8 Y7 m9 G/ L+ b" S( W  G! x

  7. ! a) l1 R" M0 r0 r1 @  A" j$ \
  8. using namespace std;; e- _' g3 A; F/ Q8 F/ H/ v1 f* D
  9. 0 W1 G9 a9 P, y3 n$ k* @. `9 F. j. W
  10. void main(void); l/ F# |, z5 @1 C8 k
  11. {  C/ C0 m" b- k- ~+ E  z1 l# v9 d
  12.     void *hFor;    //表达式句柄8 M" M9 Y7 Z& {6 L9 H* K4 g, Y
  13.     luINT nPara;   //存放表达式的自变量个数
    - H! l; ~  D6 j8 e9 L3 }9 k
  14.     LuData *pPara; //存放输入自变量的数组指针
    8 N  ]2 D; _" N! `( T. l
  15.     LuData Val;    //存放表达式的值
    4 r: m* ]8 N: R' e# z& ?
  16.     luINT ErrBegin,ErrEnd; //表达式编译出错的初始位置和结束位置
    " {. T/ B5 S- z3 M& a, W# G1 C
  17.     int ErrCode;   //错误代码
    8 b" ]( f1 f8 M* P7 X  a
  18.     wchar_t ForStr[]=L"f(x,y)=x+y"; //字符串表达式$ W! U! ?/ D' I4 J0 V
  19.     int i;
    6 U; g; H. [, b. S8 V3 [( G; f
  20. # L. g0 U- P/ C/ D
  21.     if(!InitLu()) return; //初始化Lu
    0 h6 n' j6 |- q3 ^5 W3 ]+ e3 D
  22. 8 j0 U8 u# Q  n
  23.     ErrCode=LuCom(ForStr,0,0,0,hFor,nPara,pPara,ErrBegin,ErrEnd); //编译表达式9 w# @' _( t0 A. o9 R
  24.     if(ErrCode)
    ( J7 Q# U; @# i% P
  25.     {! R& p: q2 u$ P" p, S
  26.         cout<<"表达式有错误!错误代码:"<<ErrCode<<endl;
    6 f6 ]% {6 Z3 T) Q* m: T2 \1 @
  27.     }+ g9 m! p* j; m1 J9 q4 ~' g
  28.     else2 L1 k' R% C% ]( ?: D
  29.     {* g" J, H  S3 s7 \" y9 T& L# E
  30.         for(i=0;i<=nPara;i++) //表达式自变量赋值,均赋值为1" p0 |3 U, U5 S$ c+ i
  31.         {7 o. @4 S& a% y1 I1 J7 Y! j! s7 B% s
  32.             pPara[i].BType=luStaData_int64; pPara[i].VType=luStaData_int64; pPara[i].x=1;
    + I  w7 z# k& m8 y) b& k# F8 S
  33.         }
    / g( |, L' ]' M. D
  34.         Val=LuCal(hFor,pPara); //计算表达式的值8 @' C, q; ?6 T0 X. c9 H
  35.         cout<<Val.x<<endl;
    % E0 H: G. e5 i7 Y" ]
  36.     }
    % C1 K0 Q7 }+ I; l
  37.     FreeLu();      //释放Lu
    8 N( m2 k9 I2 }$ \# L" @8 X* Z0 h2 B
  38. }
复制代码
运行结果:! K' |9 s; [( V: B8 f
, R7 j5 W  ^6 O9 {/ a+ y
2% m' h% _" e7 Y; h- U
请按任意键继续. . .
$ P/ Y( S: D  g) _; ~




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