int SCREW_constructor ( int dialog_id,/ w; x5 R; h/ Z/ D" m$ P
void * client_data,/ k5 Z; A6 Y# ]+ a
UF_STYLER_item_value_type_p_t callback_data)* ]0 I! p4 k3 v
{* o& {6 k. S# r* Y: {: Z: z g7 a
if ( UF_initialize() != 0) # d: n! j3 P6 l7 a
return ( UF_UI_CB_CONTINUE_DIALOG );
$ B0 @# [: L# [6 T7 q UF_STYLER_item_value_type_t data;
) P& \/ X# M/ a8 g char *names[ SCREW_OPTION_CHOICE_COUNT ];
- T! S- W3 [9 K% q% O5 y5 g try( `* S7 T2 V! B0 K5 {0 t
{$ _7 k; d1 P0 n. w
CDatabase database;0 C$ r1 @; W3 W6 n% R+ m
database.OpenEx( _T("DSN=screw"), CDatabase::noOdbcDialog);$ E* G5 B2 E' G9 C) k a, P5 [
Clzh ScrewSet;
1 I/ h6 b4 O3 C8 w! H R/ H ScrewSet.Open( CRecordset::snapshot, "select * from lzh" );
+ }! y" |) G. ~. Q4 y int i = 0;; M3 s& Q4 R. ]/ N+ `1 R
do
3 a# g- D1 M9 d( E2 ` {
+ f$ u: U& \( {7 |2 D5 j7 E. f if( ScrewSet.IsEOF( ) ) break;* ^- r, B( [# \+ [
strcpy( names[ i++ ] = (char*)malloc( sizeof( char ) * 30 ), ScrewSet.m_SP );
; f, g' Z0 F! [! g. p
; ?4 x6 e. a6 K1 |1 f ScrewSet.MoveNext( );
" W+ R! ~' x: F0 e, y }while( 1 );
5 G$ V/ Q ~3 I" M5 ^9 F database.Close( );
: E6 {4 p5 y- s% w1 F5 W data.item_id = SCREW_OPTION_CHOICE;
7 E9 I2 |. f6 b% s) B data.item_attr = UF_STYLER_SUBITEM_VALUES;' F& ?$ ]7 i' ]2 y: i+ m" `
data.count = SCREW_OPTION_CHOICE_COUNT;, i% V& x. y, w' O5 A
data.value.strings = names;. f5 b6 e: C7 B. H. Z5 o L
UF_STYLER_set_value( dialog_id, &data );
; C2 {* L$ p* g3 W9 ^, G data.item_attr = UF_STYLER_VALUE;/ o# x2 {6 ?2 m% W
data.value.integer = 0;
8 J& z% m. v) p# L+ {5 T o G6 Q UF_STYLER_set_value( dialog_id, &data );
2 [3 t) N7 n) O) X, T1 | for ( i = 0; i < SCREW_OPTION_CHOICE_COUNT; i++ )
6 S5 l. F% u+ z* Y) J. B4 D {
7 h* ~ }, [5 k A; C/ H free( names[ i ] );
$ {5 T) B- L8 t6 O; Y6 J* {6 s5 V }
# @) x2 _9 O6 Z* r6 i2 M, c }
& y0 [0 D7 e" N/ _. s catch( CDBException *pe ); s5 u: r2 L. Q6 {7 ]
{
8 B1 @0 a; R* T+ `$ D: M& [" f AfxMessageBox( "Exception!" );' T- f* @; R+ ~, l# M2 u2 c1 [& b
AfxMessageBox( pe->m_strError );
/ m8 c3 H+ }5 x pe -> Delete( );
4 j9 Q4 Q+ R. ` }
J) V1 t2 a* ?; w* p; W, K UF_terminate();) {2 \0 J' ]7 z: J5 h! e& ?9 p' y
return ( UF_UI_CB_CONTINUE_DIALOG );
" K3 f" B8 m5 H4 e5 `" v- F}1 Z( K- i7 ?6 S3 Y) |- v0 z
这运行之后错误是:strcpy(names[i++]=(char*)malloc(sizeof(char)*4),ScrewSet.m_SP);: P$ m @# v* \$ z+ O2 Y
谢谢各位了。 |