samfkkkk 发表于 2012-4-5 14:13 ) u9 E% t3 ?( D( Z& k& b' v# q
你好歹得把你的源代码放上来才能看你到底错在哪里了
1 ~' _* T G; W2 g, P哦,多谢高手关注,我贴上代码求指导!!
8 S- O2 `+ n$ G0 g) C9 {
8 B7 |3 }2 p. ^: f+ P. O#include <stdio.h>
: J; m# z' ?, W; ^/ u5 m# ^; h' v#include <uf.h>
* z$ r& X( i# U* C- c0 O$ I#include <uf_ui.h>
! W0 |+ B( Z9 K, z" p5 T#include <uf_modl.h>
+ O& M7 f9 R$ c8 C* g0 S#define ptnum 5
) m: Q1 H! m/ C#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X))). ~9 V$ U2 `) ~9 f) S
( \6 k: n6 Z+ a, N7 d( Sstatic int report_error( char *file, int line, char *call, int irc)9 H. Z$ _# w/ D) j3 h* z
{
+ `0 Y5 @1 k* B, O3 e1 S7 M: Q8 L# \. W if (irc)
6 M9 K6 G; @ J% a {5 r9 k" e: ]2 q0 v7 j
char err[133],: E5 U F1 V' l; f
msg[133];
0 Y) r' Z1 h1 [# H
2 W5 X0 ^6 a2 y7 `% b sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
! o* q1 ^' \8 Y. G# D irc, line, file);
5 P! U, N8 l9 k& X+ \7 f0 e UF_get_fail_message(irc, err);# Q2 h- ^7 @3 x! B$ w
, o& U }' X. T; P, q; O# W, t* A
UF_print_syslog(msg, FALSE); s6 ~* p! e# x7 I9 e* l
UF_print_syslog(err, FALSE);
1 M: M6 d/ D/ Q/ b/ n! L# K/ y- e9 U UF_print_syslog("\n", FALSE);6 e! ?' f) N6 S+ ~0 z; c
UF_print_syslog(call, FALSE);
8 z8 J S- d6 ^9 X UF_print_syslog(";\n", FALSE);3 r' I- ]7 l6 Q: A
M% K7 Q0 ?' | if (!UF_UI_open_listing_window())& F' W2 G% D& t$ G
{
+ E+ T, r, _- l$ g( T! b UF_UI_write_listing_window(msg);' o$ W: S1 `. r' X1 a8 A
UF_UI_write_listing_window(err);# t" }6 E9 S6 G3 o
UF_UI_write_listing_window("\n");! E# Q+ r8 ?0 F8 c5 h
UF_UI_write_listing_window(call);
8 u. ~; l! o O) I |) _ UF_UI_write_listing_window(";\n");% ^+ B0 i0 i- O4 W# ?0 b
}. m! j3 U6 [- x; T, f4 B3 `. l
}' t4 b% h; K, j+ E
, b K1 Z8 m7 F! I0 w2 j7 P' Z$ S
return(irc);
# u z2 v9 S1 F/ _. n8 h}( x1 N Q! n9 C; p4 V: W7 s
* O8 |. J: O" H! a- s6 T: U# m: r
/ P2 }5 }1 }9 F3 W6 D- M% lstatic void do_creat_spline()
8 Q' P3 q" p& H& w) w2 \9 V$ {- B8 M{
+ \+ n/ H: J1 ]4 { SPLINE_FIT_p_t spdata;
4 a& c' }1 `+ Z$ U" h: c6 \ double sp1,
, c; h* X( Y2 S1 A0 U8 ], y1 v4 O1 E7 A pt[3*ptnum]={1.1000, 0.5320, 2.0000,
) }+ E# \9 o$ g. N, p2 I 1.5240, 0.6789, 2.3000,; a2 s: ^' {9 f
2.0000, 0.9000, 3.5956,
) R4 U: N. C9 b5 t3 r: \ 2.3456, 1.3456, 3.7890,
! I: w( u N+ `& \1 U9 G 3.1000, 2.4567, 3.3214};
: U) q D1 L! J8 Q1 ^ int poit,i;
4 u" E8 s& s! ^) l8 @" p0 D1 p# S tag_p_t curve_id;
! o5 a& h) ]2 I* A& ?9 @ spdata->degree=3;. |0 j( u0 a0 J& f
spdata->num_of_points=ptnum;
. L$ K [% ~6 v6 u3 u, u/ h% m z spdata->num_of_segments=1;* U/ L9 W W. y
for (i=0;i<ptnum;i++)( x: q+ @% F- z4 E( v/ g
{- y1 K' ], t' S1 {% B) o, ^ X
spdata.points[0]=pt;
0 v) W: w' t7 ]" g; m3 \ spdata.points[1]=pt[i+1];
* @' q' |5 ~5 ]7 b spdata.points[2]=pt[i+2]; H( M0 ]0 Y6 x# m8 t1 C( {' s
}0 e) E4 o2 T6 u; W$ s" ]
UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));4 i) a( U) k8 d* b8 t2 z' }: t
}
- g! {$ e7 R8 M; ]! L4 C2 a
% j; }* d% V! f* U8 Qextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
# r9 M5 e3 c# D" K& B* T, I1 G{
; x0 z" E. U9 r( i if( UF_CALL(UF_initialize()) )
$ @" t2 b1 |( l& u6 F# d {
9 R+ ?& F; v) C1 n return;
5 L3 o! C4 s+ E0 r, e }% @* {7 ~3 S6 C q
do_creat_spline();
5 W: k3 T! G* c3 ~ _ UF_CALL(UF_terminate());
?. ^$ ?1 O# ^( \( P* ^. u+ V3 ^}
: J3 k: A2 M, {1 J; u8 ~' p$ a3 m: x7 `' I& y9 |
+ W/ @) |; J; |extern int ufusr_ask_unload( void ); M4 R3 |+ Q$ l$ L
{
4 u m2 |! A i2 v0 e# R return( UF_UNLOAD_UG_TERMINATE );
- u. ]) D; r! `1 H0 j/ i& W2 T2 r}
, e6 {) e( \& L, o# Y
- h, h1 c. v6 U |