samfkkkk 发表于 2012-4-5 14:13 ; i6 K% m$ W, }# Q c* f; D! W
你好歹得把你的源代码放上来才能看你到底错在哪里了
2 ?8 f3 u0 p0 L( j f( U. ?哦,多谢高手关注,我贴上代码求指导!!
! y( k0 O A8 a# W8 c6 C: T! N, A7 ~: ]1 L/ H
#include <stdio.h>
. l( A" j& ^, Z3 Q- e7 t; e; R#include <uf.h>
F [7 @4 t( j( |+ P, {#include <uf_ui.h>
+ G9 T* X! }+ R V! f#include <uf_modl.h>/ A& z9 L6 o0 g1 x
#define ptnum 5$ Y4 U$ c$ ?2 q X
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
* w/ J7 b: n* |& V6 O
* j5 \* x* x# ?9 _4 Dstatic int report_error( char *file, int line, char *call, int irc)
, ^9 P7 p. K4 s: L# s8 \3 b) l4 |{1 e1 d! ^; u8 q% c$ k6 {" ^
if (irc)
2 X5 j- U" \4 H, _9 x {
* _" a/ }$ _) i; [ char err[133],* K/ T+ c1 ~* q6 A8 @, r/ s
msg[133];5 t" H, Q2 e0 q4 Q+ X, w1 F2 V5 ?9 p
- S n' E( W6 _0 ^& Q3 j# a
sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",; O/ J) r5 p; Z4 Y9 y6 K
irc, line, file);: C6 g+ f/ L( D1 R) I9 F M
UF_get_fail_message(irc, err);1 @! x. x, g% _: f0 ~
# B& n) a. z d3 g" W) X UF_print_syslog(msg, FALSE);
F# x" p* l# @ UF_print_syslog(err, FALSE);9 u$ K! `+ ^9 j- N7 e. I
UF_print_syslog("\n", FALSE);
3 J- c; S/ C4 K7 c! J& v, a UF_print_syslog(call, FALSE);
5 d3 ]( r4 ~6 {: }+ s UF_print_syslog(";\n", FALSE);
7 h) C4 k$ j# @
: r% _$ ^, g6 s2 B+ Y6 x if (!UF_UI_open_listing_window())- e0 M2 a: P& d9 T1 N; c9 W
{
) v7 w9 n7 {9 O @ UF_UI_write_listing_window(msg);; v7 N; u8 i" P! N
UF_UI_write_listing_window(err);
" c$ o" Q+ }4 Z9 G3 f UF_UI_write_listing_window("\n");
' N7 H2 N& G( i UF_UI_write_listing_window(call);
6 ]; n$ p. K, z% o/ `/ X" u" m UF_UI_write_listing_window(";\n");
" D% R6 k J$ O }
" G- y8 S2 L }) ~2 V2 N% r }2 B7 Q% p1 r7 y+ P
$ t: N$ I! D2 n' P
return(irc);
. k# Z" n8 c- A: k0 @. s}: ^) F0 I$ N7 ]2 e( u% {* K: h2 y
& Q, i+ e7 m/ s% D% M, q% p
' T; D4 T/ x+ P3 N6 D/ fstatic void do_creat_spline()( l5 T/ S7 R) c& ^5 B$ F
{
8 |9 \- i+ A6 B4 G SPLINE_FIT_p_t spdata;+ D' j" ]7 ]5 @
double sp1,% k/ _9 M9 Z' l- @
pt[3*ptnum]={1.1000, 0.5320, 2.0000,
0 B p1 @5 ^; _ N8 \ 1.5240, 0.6789, 2.3000,
, l3 z3 u9 J* E* s/ v1 G 2.0000, 0.9000, 3.5956,
+ z" c# g: b3 S$ r b8 z, `- L 2.3456, 1.3456, 3.7890,
) X+ a6 q. J5 s2 u; K2 R 3.1000, 2.4567, 3.3214};
% |# n' k- g6 K* L+ }. l8 f int poit,i;
* x5 T+ h" r2 I5 l tag_p_t curve_id;
* N6 V6 T7 ~) h$ l. T; V4 l spdata->degree=3;3 J9 ]+ o0 F( R
spdata->num_of_points=ptnum;
. m0 ~( b5 \6 p- e; q spdata->num_of_segments=1;
, @. ?2 `' D% A% ^3 z) [ for (i=0;i<ptnum;i++)
( Y) q5 W# r6 ^ h# x7 R, v% K {' `: v/ X* p' v% W' u) o* h
spdata.points[0]=pt;
5 S3 [6 @6 S1 R9 ]0 j& l spdata.points[1]=pt[i+1];
! s: o! v4 w3 |' k7 x# q8 ~! z spdata.points[2]=pt[i+2];9 X. f* b& `6 A& H; l0 N% v
}
' @% `7 Q2 Z# W! O7 ]) c UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));9 V) v# R# N$ ^: S4 B! e0 j" C
}* {* r# Q! T/ V( Z/ S% }" k" P: w
6 ^2 ]1 o ^- b Y% aextern DllExport void ufusr( char *parm, int *returnCode, int rlen )9 c* D# D8 u' R' v! J
{/ a, @+ I4 k/ R" y
if( UF_CALL(UF_initialize()) ) : i6 z% M" V3 N* S( w6 u7 J5 X
{" F$ ~( e4 `+ @- E# p, u; d
return;
% X1 S! i& e1 J9 y }, @8 ], I v/ u
do_creat_spline();9 Z1 D; ~% e$ {5 K
UF_CALL(UF_terminate());/ U% Y* D, M% Y' a( F
}
! j. s0 E$ q ^6 E. N1 L0 b: F) y; w* m+ r
r9 ^& E. q7 k4 _5 d6 Jextern int ufusr_ask_unload( void )/ v9 D- e8 F2 \
{# a5 \2 y# y a' n' e! `
return( UF_UNLOAD_UG_TERMINATE );+ l. z* Y: i0 [0 G; Q0 L
}" j6 M) e! p! a8 V8 q; I6 E# X
) f; h4 m, a8 g0 Q6 x |