数学建模社区-数学中国
标题:
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/ Z
3、核心库lu32.dll。
#include <windows.h>
& V- ^) z6 p" J+ }5 M, \
#include <iostream>
: B g; m4 _$ |6 E- j, M
#include <math.h>
- \7 `- N+ `7 V/ Y2 r
#include "lu32.h" //Lu头文件
3 }0 b1 x0 e: c9 [# p
+ W% k2 J- E$ ]( { }1 e, _
#pragma comment( lib, "lu32.lib" )
* l) \7 k. j$ K: M% L0 V
8 q7 c7 n' w! i( e. b5 o- `6 k
using namespace std;
2 N& M5 K5 F3 L+ k% K
3 g6 \: n% q; G5 P# j3 D
void main(void)
3 ]+ A+ l( j+ x9 ^# G* ~' H
{
- \# d7 W! i$ g" A8 s
void *hFor; //表达式句柄
1 l. y% t) K; x% B& t8 ^# Z
luINT nPara; //存放表达式的自变量个数
7 z0 i- k: Z- \6 j8 V% v& P* [
LuData *pPara; //存放输入自变量的数组指针
* E& ^/ v) E' B8 m, n
LuData Val; //存放表达式的值
& f$ P: Y' E: z& x; e/ ]
luINT ErrBegin,ErrEnd; //表达式编译出错的初始位置和结束位置
" f {8 y$ N q7 [
int ErrCode; //错误代码
0 h4 \# w1 ?9 M0 q0 r. z
wchar_t ForStr[]=L"f(x,y)=x+y"; //字符串表达式
6 p9 }/ c# b* T
int i;
$ z( E$ Z3 I) |7 \% h/ T* ?5 c
8 {6 N( v0 P' {& h9 C! s& }
if(!InitLu()) return; //初始化Lu
2 V' c* V8 K/ i$ S f! V
7 w7 L' W5 i, Y( u* ]) h
ErrCode=LuCom(ForStr,0,0,0,hFor,nPara,pPara,ErrBegin,ErrEnd); //编译表达式
6 p1 V2 Z' k% N$ f2 z9 \
if(ErrCode)
' n* K9 u5 T/ t1 E/ e0 V( R" C
{
1 `+ {/ _; p/ k1 z I* R# s- y
cout<<"表达式有错误!错误代码:"<<ErrCode<<endl;
: N m3 ?' k1 `
}
' J( i0 s; X2 `1 g9 K3 d/ d) e( p
else
( U$ b: [$ V" l8 H% k
{
" _0 @9 P% n+ k9 o6 I( N0 L, b5 ]& _
for(i=0;i<=nPara;i++) //表达式自变量赋值,均赋值为1
k9 Y+ w/ W! _6 E0 i
{
/ `, S* j0 P5 c( X- D5 V5 }4 l% S
pPara[i].BType=luStaData_int64; pPara[i].VType=luStaData_int64; pPara[i].x=1;
& }" O+ u3 `; x z
}
6 z/ M: I$ a. o
Val=LuCal(hFor,pPara); //计算表达式的值
8 G+ P# |3 ^. c6 |8 Y: i5 {
cout<<Val.x<<endl;
, c k8 t. A9 T6 `& X: z. P: b
}
7 K |3 s; b, \* n3 q$ r! c
FreeLu(); //释放Lu
2 A, X+ K5 p* H+ C9 T+ U
}
复制代码
运行结果:
, `( 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