数学建模社区-数学中国

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

作者: forcal    时间: 2011-10-19 21:30
标题: C/C++调用Lu的入门程序
C/C++调用Lu的入门程序8 I4 q9 B; a8 g$ q* n5 X) d! \

+ w# ]' R' I. D& t+ \5 x  Y仅需要以下支持文件:
$ A, Y! f' e  y( v( ^" g1 \. H# q: k$ v$ j) i" s1 b: O) r0 w
1、头文件lu32.h。. q3 ]: s' [/ C. s
2、导入库lu32.lib。. q- v) U" r* h
3、核心库lu32.dll。
  1. #include <windows.h>
    $ k# K9 r( d! `: m! `0 B) b" q
  2. #include <iostream>
    # |: d" }5 u, `
  3. #include <math.h>
    / U- S9 t  P7 T5 q7 l- A+ d( A5 V
  4. #include "lu32.h"  //Lu头文件
    ! Z& ?/ I* l1 V

  5. 9 Y# X5 X2 K' x' u: ?
  6. #pragma comment( lib, "lu32.lib" )
    " I- ?9 j* Z6 t6 p' h; f: k. j' {
  7. 8 _9 {& e. U9 j: ]$ G
  8. using namespace std;
    2 z% R2 m8 x: f6 c0 s

  9. 0 k. b/ }% h  G5 V
  10. void main(void)
    ! |( D7 M; Y& G: R; i" W2 K9 W
  11. {
    : c$ Q" s! \9 Z3 _& ?3 G- n  A
  12.     void *hFor;    //表达式句柄; w/ ^3 W7 _* }$ n8 d( q" n
  13.     luINT nPara;   //存放表达式的自变量个数9 D/ Y  R- M2 N! w% I! j0 a
  14.     LuData *pPara; //存放输入自变量的数组指针% b  b, e) _8 {6 i. Z
  15.     LuData Val;    //存放表达式的值0 n6 K( ]6 x- F5 F- d- B, z
  16.     luINT ErrBegin,ErrEnd; //表达式编译出错的初始位置和结束位置
    9 J7 \  m: |; J8 [
  17.     int ErrCode;   //错误代码( C" X; `, o9 x+ ~( j
  18.     wchar_t ForStr[]=L"f(x,y)=x+y"; //字符串表达式! e# A/ t# L( O* Z
  19.     int i;2 @1 H1 |* B9 J3 s# C$ s
  20. ! h4 L4 m' `/ {: {2 \2 g/ W0 o
  21.     if(!InitLu()) return; //初始化Lu. }2 m6 I9 ]2 i' `# f* L5 c

  22. 1 ?* a  h$ d! h6 I8 P- y
  23.     ErrCode=LuCom(ForStr,0,0,0,hFor,nPara,pPara,ErrBegin,ErrEnd); //编译表达式
    ( y. J* _; J9 o) G* p1 S
  24.     if(ErrCode)/ O+ N& f9 C- H) z5 p
  25.     {# W; }+ ]; C2 h( n1 H, n0 s" Z
  26.         cout<<"表达式有错误!错误代码:"<<ErrCode<<endl;
    & \# x; O) b/ A+ q  B) ?) G
  27.     }
    # t6 x. ]7 {5 B2 ]% q  _
  28.     else
    $ d6 k" [2 x8 g. }* E4 ?" x& l1 C; S
  29.     {
    0 R% V. K! x! l
  30.         for(i=0;i<=nPara;i++) //表达式自变量赋值,均赋值为17 P; ]( m/ a, s/ m, l" }6 G6 t
  31.         {: T  u7 j) Y8 C, u5 P2 ?. ?- X9 h
  32.             pPara[i].BType=luStaData_int64; pPara[i].VType=luStaData_int64; pPara[i].x=1;' e" v5 P( o# X8 g" P
  33.         }: N7 \# |( b# K  y6 R
  34.         Val=LuCal(hFor,pPara); //计算表达式的值
    1 D4 u6 u8 h/ ^; ]6 S, |9 ]
  35.         cout<<Val.x<<endl;
    0 P$ h3 @2 C6 K& D4 z( C( G; }
  36.     }
    1 Q0 V1 v- y) k$ K& Y
  37.     FreeLu();      //释放Lu
    ' |6 k$ w$ b& }: D9 w- N
  38. }
复制代码
运行结果:( H1 n# j' n1 u/ T
3 g3 ~1 c/ S) j, ^4 Y* }- E
2. H& c% w) G) B, [+ h6 N
请按任意键继续. . .
, P5 g; a) d8 J5 q. g& z+ g




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