int SCREW_constructor ( int dialog_id,
6 r& o9 B3 m- y* e void * client_data,
. ^+ i, B7 u- n } UF_STYLER_item_value_type_p_t callback_data)' G! q) d" _- `
{
' L! h F2 M7 T2 q if ( UF_initialize() != 0) 7 H, g0 F. c% o! b# |* t- V$ k4 @7 ^
return ( UF_UI_CB_CONTINUE_DIALOG );
2 N1 V! _& Q: a0 o' T UF_STYLER_item_value_type_t data;3 x3 D% i& r5 A- t9 O+ M
char *names[ SCREW_OPTION_CHOICE_COUNT ];
' x1 P3 \5 I; s1 ^4 ` try
9 r2 b' s ], _1 w0 W4 e0 }. N {
, O! [3 D' m+ Z' [+ } CDatabase database;
6 a4 o6 G0 L# W1 T+ _1 ]8 c database.OpenEx( _T("DSN=screw"), CDatabase::noOdbcDialog);
Z7 Y+ }9 c: D Clzh ScrewSet;6 G" B2 V! j U6 [
ScrewSet.Open( CRecordset::snapshot, "select * from lzh" );
" t/ A- i8 T2 h A( E- ` int i = 0; s# J- ?0 B/ k) D% q# C4 e
do- r+ z! m, y$ k- k7 e
{
W C2 y R6 [0 `7 h4 i8 h+ j if( ScrewSet.IsEOF( ) ) break;; m! F* Q. s1 X8 O9 [, k; l2 x
strcpy( names[ i++ ] = (char*)malloc( sizeof( char ) * 30 ), ScrewSet.m_SP );
/ ]- E' a6 V/ C4 I+ f# W0 @8 R$ V 7 h; l- s6 q7 b5 W* ~$ V& e) D
ScrewSet.MoveNext( );
3 X5 {% m% h/ n' M7 t- k. W3 O }while( 1 );/ M0 a' M9 W1 i4 P" Y/ h- `
database.Close( );3 N# F5 m9 E8 D* e* ]& ]
data.item_id = SCREW_OPTION_CHOICE;
6 F4 G) q/ v% @3 }( t; @ data.item_attr = UF_STYLER_SUBITEM_VALUES;( I4 Q, G- X) b& g6 F O: [
data.count = SCREW_OPTION_CHOICE_COUNT;* L! D, M/ X9 p" I6 Z
data.value.strings = names;
- j5 Q5 b1 o; z" {+ ]( b$ \ UF_STYLER_set_value( dialog_id, &data );% Y& p8 g; E* R; i& @/ U
data.item_attr = UF_STYLER_VALUE;: @5 n5 @. d% m* _$ S- p& z) i* Y
data.value.integer = 0;" a# f" m* n- L5 I
UF_STYLER_set_value( dialog_id, &data );7 f1 Y6 H9 z( w- p6 c
for ( i = 0; i < SCREW_OPTION_CHOICE_COUNT; i++ )8 y7 ?4 R7 o+ J1 {; ~ r
{
: x2 r1 q. Q" [2 j1 y- S free( names[ i ] ); Q( J. r R0 W) P+ s5 ?9 i7 U
}5 a- g. z" C% A4 b1 n
}
6 H; q) M5 G& }% B7 i6 D catch( CDBException *pe )
) W' s5 p; E* d, n; I {
6 H& N; A4 W( T6 f! ~# | AfxMessageBox( "Exception!" );3 J8 R" F ?0 {8 F6 s$ n& q; {9 r
AfxMessageBox( pe->m_strError );& t1 h6 Z! X- y& O
pe -> Delete( );* }8 M' W W! @* n. N$ s
}, ]6 Z0 ?0 N+ B9 O4 ^$ F+ H: Y) N
UF_terminate();8 g7 [" }+ v% D, V2 {) I. f! s
return ( UF_UI_CB_CONTINUE_DIALOG );
. L! p! o3 L" E* n} s6 B4 |8 Y% h
这运行之后错误是:strcpy(names[i++]=(char*)malloc(sizeof(char)*4),ScrewSet.m_SP);
# {' \6 W$ I* n0 |/ a0 K. a谢谢各位了。 |