samfkkkk 发表于 2012-4-5 14:13 ![](static/image/common/back.gif)
0 J* `" G+ L0 |3 l0 `4 D+ v你好歹得把你的源代码放上来才能看你到底错在哪里了
! }7 Z b6 x, J, P* n哦,多谢高手关注,我贴上代码求指导!!
3 g6 N: t7 i8 Y. t
6 [. Y$ ~) o2 R- k" O: C#include <stdio.h>) V& r- G2 v' p" s
#include <uf.h>
, e' n, O% ^# L" R% c#include <uf_ui.h>
& O% R/ J& b& ~ W9 D, \#include <uf_modl.h>' G) M" u: @" z9 M
#define ptnum 5+ N1 K$ `# e/ ~
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))9 L8 V& r( [/ x# ]0 I
0 }& a+ G! V$ x
static int report_error( char *file, int line, char *call, int irc)
8 I; u+ B! Q6 ]+ |$ s2 d* m9 ~{
5 I+ @+ f {9 W1 A if (irc)
( @+ [/ M5 U- U# J {- U7 m7 m) i9 [
char err[133],
, M' z$ y& C* O& s; `/ K msg[133];6 E7 o( ]/ `1 M3 F
/ u' ?- h( C" B, f( w sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
; b8 ]7 `3 g) c; Z irc, line, file);
. I( F ^% I4 b4 ]' P4 g4 y) @ UF_get_fail_message(irc, err);
3 W0 u4 g7 Z' H; k0 \% J
% |+ C' K0 l6 E6 J UF_print_syslog(msg, FALSE);0 D# I4 L2 W6 l8 j' |
UF_print_syslog(err, FALSE);3 \7 h! j# U6 s
UF_print_syslog("\n", FALSE);+ P) N3 t6 `& o) a, x8 p
UF_print_syslog(call, FALSE);5 ~& m, \, O6 }" B4 N3 M4 a
UF_print_syslog(";\n", FALSE);
; I+ B+ K' _5 a% n) d7 g
V( q4 b; v$ T: D' X/ P" F0 z if (!UF_UI_open_listing_window())' V: B2 K% ^$ Y% E5 g
{
! H4 P( b7 P+ ] UF_UI_write_listing_window(msg);
Q) \% @: p3 A/ G: @0 n UF_UI_write_listing_window(err);6 G/ j! L5 s* j8 C! {: W/ g
UF_UI_write_listing_window("\n");
9 r/ Y0 y( ]6 u. W% M6 f UF_UI_write_listing_window(call);1 ~+ f# x/ }2 d6 \$ }) z
UF_UI_write_listing_window(";\n");
" A9 R; @% [ Z3 `$ h }3 Q5 o' O/ N- m- Q; Y, d
}; T% L1 L3 L; E- k, T' t3 t
$ v3 l) K" p+ }+ ^" j: U return(irc);
3 a- A( z6 s1 g4 b6 R* z$ U: N3 k& Y}4 l) d9 O t; c$ c' I
% ]! B5 V1 P! T
7 `: l, R0 w7 d$ i0 \; hstatic void do_creat_spline()
9 Y- K( J/ Q) W) G+ e# [. D; L{1 y' J- r) _' t& L
SPLINE_FIT_p_t spdata;
; x4 `' w! n3 d0 s% y double sp1,
0 R# p0 ~; }$ K9 ^) R* } pt[3*ptnum]={1.1000, 0.5320, 2.0000,3 K; J* |5 V# L
1.5240, 0.6789, 2.3000,
3 e; k G- }+ \( W) ~$ N 2.0000, 0.9000, 3.5956,
* H1 C$ S$ C& H7 u 2.3456, 1.3456, 3.7890,0 t2 g8 b' V5 H4 A+ p+ r, ]( M
3.1000, 2.4567, 3.3214};% R: s) h0 s8 ]
int poit,i;
' p1 o* I- \" M tag_p_t curve_id;
# v F5 j4 M1 I spdata->degree=3;* ]% L& V# X- B% g/ @
spdata->num_of_points=ptnum;# R) ~" B6 x6 H: T0 H) y* q* M$ S: T
spdata->num_of_segments=1;
7 y/ L" ^0 X0 b% s, M8 j( ~ for (i=0;i<ptnum;i++)
! t! h% f4 Y! T% l4 w4 z/ b {
% C2 ~9 z' d+ p spdata.points[0]=pt;% g- ~, V4 r, U$ }+ X
spdata.points[1]=pt[i+1];
. O D; @0 [4 T3 `3 y6 i spdata.points[2]=pt[i+2];% g9 D8 T; O5 Q; Y; R
}
) s9 H# O* m; \0 [) }" Q2 S UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));
+ {2 h8 H0 F3 F+ T}8 u: w h8 V9 t2 N2 m0 U# a4 x
0 ]" b8 Q) R3 _' K
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )4 H2 O; \/ P) T, Z# P9 q; T
{
, k5 P( j% r j0 u* F+ _8 l; v9 h if( UF_CALL(UF_initialize()) )
$ b$ p- o$ C) u6 H, v {/ {7 I6 G+ Z* f6 ^6 _
return;3 `$ k P. C8 c) W9 t" R
}! Q5 N7 P" `- B# D
do_creat_spline();
6 j( |& t+ v5 c8 @: j7 p UF_CALL(UF_terminate()); u9 c, E) a4 J& P7 J
}" T+ F2 U' p" D) d% K$ N) k
$ F! _+ F' v6 t7 E* S
! L# L" \6 {/ m, F( lextern int ufusr_ask_unload( void )
* ?& v6 p! p2 e9 t" M{# W4 A/ Y# D. y9 Q1 V1 }' h1 f: K' \
return( UF_UNLOAD_UG_TERMINATE );5 i" c/ y; R# j+ r: ^' H# `$ o
}+ A, F5 C U: E- c; t9 p% O+ q+ A5 b
, R) V% }0 l4 p2 l+ @
|