数学建模社区-数学中国

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

作者: forcal    时间: 2011-10-19 21:30
标题: C/C++调用Lu的入门程序
C/C++调用Lu的入门程序" Y# q4 _3 I4 ]' y5 }# g

, y# u( _* i6 m9 X& x3 d仅需要以下支持文件:
6 D! Y/ W0 Y# }3 l
5 {7 s5 {6 ~+ [! U$ Z7 Z- Y  [1、头文件lu32.h。$ K) n9 p* }9 [2 [
2、导入库lu32.lib。
( z5 M1 d0 ]8 U0 c" {3、核心库lu32.dll。
  1. #include <windows.h>
    ! w+ t, n$ R8 l% Z: Q
  2. #include <iostream>% I% [6 D1 ~% E& Z" o7 Y- O
  3. #include <math.h>
    " |0 o9 {" r( R$ z
  4. #include "lu32.h"  //Lu头文件
    2 L# I2 I% ~9 N7 G  F# o. f
  5. : k3 g: H" b. i% C
  6. #pragma comment( lib, "lu32.lib" )& N. g5 S  ^: r1 D" v
  7. 1 w9 Y$ p; M2 L
  8. using namespace std;
    : s' Q8 c: M; y' i7 j2 i( h* R
  9. 1 y2 P( ?2 k% t2 n9 w( r& A1 K/ M
  10. void main(void)% ~& u, o* m( X8 v
  11. {
    2 T9 m+ C& L: T. G) e
  12.     void *hFor;    //表达式句柄/ Z+ G' W* x8 Q) x5 @
  13.     luINT nPara;   //存放表达式的自变量个数
    4 s0 U0 z- y8 p4 a
  14.     LuData *pPara; //存放输入自变量的数组指针
    8 X3 d$ \' v8 G% D; G7 W
  15.     LuData Val;    //存放表达式的值5 r$ x3 |! ~* ~5 x: i
  16.     luINT ErrBegin,ErrEnd; //表达式编译出错的初始位置和结束位置
    6 _7 j) ]; e( _) |5 Y. P
  17.     int ErrCode;   //错误代码
    7 b5 \4 P( C  B5 S# f/ j
  18.     wchar_t ForStr[]=L"f(x,y)=x+y"; //字符串表达式8 o& v$ _  {+ `1 U5 [. `- q7 T2 E
  19.     int i;
    7 E( a& F* A& M5 g2 H

  20. & q- a& |9 ]# `
  21.     if(!InitLu()) return; //初始化Lu
    % l! C( ]/ N/ G& V$ F9 p6 _
  22. " }; M: W4 d3 S3 A: k+ l+ ?" w
  23.     ErrCode=LuCom(ForStr,0,0,0,hFor,nPara,pPara,ErrBegin,ErrEnd); //编译表达式. M( U- Y6 {: k
  24.     if(ErrCode)& d7 }, F3 J4 J$ f
  25.     {
    6 O! c! r4 K! ~
  26.         cout<<"表达式有错误!错误代码:"<<ErrCode<<endl;8 U# x5 s$ ?# k, t' i5 k
  27.     }
    ' ^. z: A+ R# K4 c+ f" B4 d
  28.     else) Y8 |: Z+ m$ O) F
  29.     {
    2 [  n3 s; T5 |; }# o/ h9 b: e
  30.         for(i=0;i<=nPara;i++) //表达式自变量赋值,均赋值为1
    ; t6 ~6 N8 l6 g" e# f, k
  31.         {6 D, F6 U3 H, D" f1 d2 G" f
  32.             pPara[i].BType=luStaData_int64; pPara[i].VType=luStaData_int64; pPara[i].x=1;" R7 M3 @4 m# g8 `- j5 Y
  33.         }2 U/ {, z5 W. e! B2 d+ i
  34.         Val=LuCal(hFor,pPara); //计算表达式的值
    $ K+ d2 t# Z3 L: }
  35.         cout<<Val.x<<endl;
    ( e. @1 D  h! _: A6 q) Y
  36.     }
    & h1 r" Q; H+ Y# I
  37.     FreeLu();      //释放Lu* X/ ?6 \% Y5 U" c* b
  38. }
复制代码
运行结果:
' Y) c. M1 S; i# j0 p6 \! F
! C% i/ @) U/ y  J6 [2# U# g! p5 H4 q+ B# T0 _; k" W
请按任意键继续. . .
( H* h: w: X5 u




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