samfkkkk 发表于 2012-4-5 14:13 ) d+ |9 J* i( i6 `
你好歹得把你的源代码放上来才能看你到底错在哪里了
$ ^3 ~! Y! r1 v4 l, F% g哦,多谢高手关注,我贴上代码求指导!!
, s# P* n6 N5 x
- j" O( n) h, h1 I1 O- t7 Q; y1 [$ z#include <stdio.h>
! G: ?7 d$ S( }+ B/ f5 K#include <uf.h> n Z3 y' _5 ~ e. ^" i8 \; @
#include <uf_ui.h>/ E" I7 W6 C4 C1 K$ J
#include <uf_modl.h>7 C; b8 T/ F3 X% a# r4 ~% r1 ] D
#define ptnum 5
1 N4 q5 y2 x5 E. n6 C6 w( t) X#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X))), w6 E$ B7 `. B$ l3 M9 b
2 u5 \8 n2 t& e% sstatic int report_error( char *file, int line, char *call, int irc)
8 G! B! o7 I! Y# a4 e{7 W+ J9 C3 z5 M$ k+ W
if (irc)
; d$ ^, o0 D% x* L8 j( O! g- f: B {
1 o" W. R' B3 E* G char err[133],
! D4 w: [4 D8 `% A2 L5 A. l s msg[133];
/ V" v9 Z2 a& T) f7 s, i% w& V V! x
* v3 x, ?- g% m: S% k sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
1 h' C- u- h5 f' ^7 ~ irc, line, file);7 P8 V3 `- C1 K
UF_get_fail_message(irc, err);
5 ?2 Z2 l1 {, h4 k; X
3 t5 E. ~) _4 s& t8 s: z+ Y- ? UF_print_syslog(msg, FALSE);
$ I1 G" T( m2 G' o UF_print_syslog(err, FALSE);2 @) E3 Q/ E7 W$ T
UF_print_syslog("\n", FALSE);/ {. I$ |) ^3 O! z; L( i8 |" A- G
UF_print_syslog(call, FALSE);/ F0 \' K5 [- q. w
UF_print_syslog(";\n", FALSE);' b$ J1 k. l' A" p
# n( x2 |. m! K7 I% ]$ n+ e7 E/ V
if (!UF_UI_open_listing_window())$ u. L" w& d6 D5 G5 l
{
% N* e# d1 F- |/ o6 l5 I" F6 ?' I* T% t; d UF_UI_write_listing_window(msg);
; ?- M+ m) r& E# f [% D UF_UI_write_listing_window(err);
5 w1 W. v: O5 j9 W7 k UF_UI_write_listing_window("\n");! E* L1 ^1 j! ]$ Q! C f6 z" b, U% Y
UF_UI_write_listing_window(call);
; [. W) h* t- ?, z- j; K: T6 d6 W UF_UI_write_listing_window(";\n");
* r$ g7 _, {( M+ Q( e' S }) L: _! `" p* t' H3 e3 x+ I2 ?
}9 Z$ y1 A. |0 e# Y, C3 o. H% p
4 K$ t/ q* F" `0 ~
return(irc);, R: B1 T2 W3 e4 Y
}% P# j% U/ v' e
+ I% J6 n' y! { H* D& ^6 T7 L: V
7 y0 H- m* r9 ?, E- xstatic void do_creat_spline()" }/ R k4 j& f" ~, t
{
" |! U$ G2 b& J5 t SPLINE_FIT_p_t spdata;
% {5 J0 [( ?: @ double sp1,- o% P) q/ J+ ~, E
pt[3*ptnum]={1.1000, 0.5320, 2.0000,) ]0 b3 X5 D! c3 f- F& m% F! d
1.5240, 0.6789, 2.3000,5 W1 h0 L& b! }' t7 X& z
2.0000, 0.9000, 3.5956,
0 n6 k; y: c4 F; L- X0 Y 2.3456, 1.3456, 3.7890, G$ K$ z& c" V+ U7 k/ D7 O$ ]: w
3.1000, 2.4567, 3.3214};
" P' n; H/ p8 X- D, w int poit,i;
& a+ Y3 U: q& M tag_p_t curve_id;0 C4 e6 S9 ^! x0 m# Y
spdata->degree=3;3 D# i8 o8 |9 e/ {, d
spdata->num_of_points=ptnum;
7 z: X$ B5 b8 i% w6 h spdata->num_of_segments=1;
- D. r) P. E7 k3 p: h4 \ for (i=0;i<ptnum;i++)
% A6 B3 {( `% g% [3 C. h {: p: y% T) F" u: e# @
spdata.points[0]=pt;
& L/ T8 u4 K1 l! F- M spdata.points[1]=pt[i+1];0 d" ]& [8 n m5 w" Z5 U
spdata.points[2]=pt[i+2];# w3 c# k$ N7 {6 }' Z0 c
}
- \1 D7 d; ` G. b! T! x+ ~ UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));" J) l4 F/ D1 A3 W
}; b0 y2 T9 V3 r6 l% O1 [4 q3 K& Z
! O3 {' S; I: u6 Xextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
* x7 ?! B4 v, K{0 e! e( w, {6 E! j7 ]) d
if( UF_CALL(UF_initialize()) )
& ?- P; A0 q! r W0 q' n0 J {
& c( N n, Y/ V; x return;
; |3 u& c% t2 J }
- J- A/ }+ ^ R! [+ z4 f( T3 ] do_creat_spline();
" y4 @( j! M9 E2 u9 t/ H UF_CALL(UF_terminate());
- E; ^" B$ l# {' |; }0 m9 z1 U}
/ Q% _; Y3 V) [4 @0 e) Y v; ^$ ?! h- {7 R
3 Z# }) I5 d! i L2 c9 xextern int ufusr_ask_unload( void )9 e& c" M: i4 t% n$ }! n! `$ C; N. w
{
% x6 Q# O% j4 c' L& N return( UF_UNLOAD_UG_TERMINATE );
2 L2 O& F, I- @- t}. U! P& R: u( |6 b3 Q
% A/ t2 t/ f+ i; m. n
|