samfkkkk 发表于 2012-4-5 14:13
2 B9 V5 g) ?$ U& n2 J) Y你好歹得把你的源代码放上来才能看你到底错在哪里了 % Y: Q6 I* ?8 e& j8 @
哦,多谢高手关注,我贴上代码求指导!!
( q( D. {0 s/ P) d. a* B- `5 P5 l C) b$ Z# _0 q; L- c% c6 u
#include <stdio.h>9 J. \. W. f' P# E( _# j
#include <uf.h> f5 T: N B9 p/ h5 Y
#include <uf_ui.h>. U% q6 i1 X4 T8 r2 d
#include <uf_modl.h>
& Z6 [# w) O& P/ ~, g3 x#define ptnum 5! c3 u: L' Q6 s6 I: a% A3 E
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))) T) F, ]8 Y( @" s4 C2 J- F2 n$ T8 |5 _
" y6 g4 r D- P7 O( ~) e! o
static int report_error( char *file, int line, char *call, int irc)* P0 e' Z- T. x* a
{
4 m9 C; m1 P# A if (irc)% N4 @( e! B& J3 k
{
, H! _7 }" K! B; D h" Y char err[133],' w7 ?/ H) t2 y& b4 ?4 \0 G( e' C' S$ h
msg[133];
2 e1 @- l. o0 F) f8 g
% }1 f" M7 ~( ?2 I8 K/ O: V& x" @; v sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",& m" G7 @" Q# o, j; Q9 B
irc, line, file);
6 l. Z5 N( U' J8 C9 l* u2 U1 L UF_get_fail_message(irc, err);
' F6 @! h( q2 q' A
1 S% U n. D3 c) w" W: v UF_print_syslog(msg, FALSE);0 p8 X) @ i2 L7 b* Z5 w" j
UF_print_syslog(err, FALSE);3 N/ `: @' `/ `7 F+ G
UF_print_syslog("\n", FALSE);4 g+ C [1 M( Y% X7 v b/ ?3 ~
UF_print_syslog(call, FALSE);
. C* G% x7 _3 |% ^0 {$ q+ ~7 d \7 A UF_print_syslog(";\n", FALSE);+ P3 C8 B- ?+ G6 R& u+ w
/ w+ ^* e+ P2 p* q# `; r$ F% @ if (!UF_UI_open_listing_window())( `- v- r/ O. Y
{0 Z5 H, W v7 `
UF_UI_write_listing_window(msg);' I1 g6 f1 H9 I: ?/ d
UF_UI_write_listing_window(err);+ q* V* ^( w b% f. o
UF_UI_write_listing_window("\n");0 |2 o0 H- D/ E. f4 W
UF_UI_write_listing_window(call);1 j+ q3 V4 w: T0 k" X: S5 H
UF_UI_write_listing_window(";\n");. T0 w1 y. ]( y
}* D6 t X& ~# v4 } z9 Z& q
}
7 [3 z k/ g0 G8 B. S7 O4 H; H4 \
H. q: Z7 m1 _0 u/ b. [) l; j/ e! Z return(irc);
: W5 {- b. b7 Q. V0 Y' b7 G' q1 b9 g}
5 f' r2 j9 @) m
/ H3 K4 _3 _, _) S8 \6 Q/ G: _9 S/ ?+ y/ B1 K9 q( M/ I% a% p6 m
static void do_creat_spline()" Y3 ]) `* I: v' J/ U7 `
{! y$ _3 x5 C/ o
SPLINE_FIT_p_t spdata;) o6 A, M1 X5 i% V' q
double sp1,9 F# O0 z( W5 F" V! `/ U E
pt[3*ptnum]={1.1000, 0.5320, 2.0000,
$ }/ @2 i0 @/ N& o# `0 ^ 1.5240, 0.6789, 2.3000,6 S: y. A/ g& E
2.0000, 0.9000, 3.5956,
% @3 [# m: B% p% T& I5 Y 2.3456, 1.3456, 3.7890,6 P9 r4 d& {, h0 T) R
3.1000, 2.4567, 3.3214};9 s4 J. F: X0 n y; g. _8 F
int poit,i;, a5 J' W$ ^1 L5 x1 L
tag_p_t curve_id;1 U, M- F0 [- {6 o9 t
spdata->degree=3;
: z3 }5 H" N/ u# ~& n spdata->num_of_points=ptnum;
) K$ |( o ^: a spdata->num_of_segments=1;
3 q! C# o. ] Y6 }( @& M. k; A) C7 s2 x' R for (i=0;i<ptnum;i++) p+ y2 F. v; D0 r
{- F% r, v$ K: R7 D" `
spdata.points[0]=pt; l* W0 A8 O; m$ e% Q
spdata.points[1]=pt[i+1];
5 y5 |+ w/ X: Q2 V8 h spdata.points[2]=pt[i+2];
2 \9 l5 s9 K# z }. D% Q( Z* U4 Q; X* e* i' I
UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));) V% b% i- ]' B3 v
}; m5 A1 i! g D
; Y8 O5 x2 u5 n! Dextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
- P0 h7 x/ \6 Q [. ^& O0 d' D{% A% }( v& K, Y& g7 Y7 V1 L
if( UF_CALL(UF_initialize()) )
+ {( Q: O5 W4 q# d7 L* R {/ ~; [& n ^ m8 f
return;
/ [& `8 _$ |5 e9 F/ S& I, @- y }
& T4 Y9 H& A( I1 J( M do_creat_spline();
' G9 l1 m: i: v( U UF_CALL(UF_terminate());. |7 {: P c6 B4 j- ?
}
. O8 o7 Y& m3 a- e) A
4 F: V2 n0 r% m. K! t. l
6 Y1 Y0 n/ Q3 a ]6 d `extern int ufusr_ask_unload( void )
: B, O& Z7 x& {1 X" h{
1 Q+ @$ S1 b. T1 m$ Z' {: c/ [8 ?6 I return( UF_UNLOAD_UG_TERMINATE );9 {0 [! A( i# U) q
}1 Z& `" G: ^/ Y" s& r' s7 o9 @
# m- D" D( @$ K) x
|