int SCREW_constructor ( int dialog_id,' G7 B) x; C/ l: Y- c5 ^2 V
void * client_data,
5 J7 a8 Q6 F0 c3 k UF_STYLER_item_value_type_p_t callback_data)
& u* s t: _, F% K' I H H{
3 S- l0 @6 z F& I% U; T if ( UF_initialize() != 0)
% @' e6 o, i# v0 ?9 q return ( UF_UI_CB_CONTINUE_DIALOG );
, f& m* M2 D _* X$ ^2 M y* z UF_STYLER_item_value_type_t data;
+ q% ~ Q' W# ` f& V; { char *names[ SCREW_OPTION_CHOICE_COUNT ];
8 q- m" m- x+ N7 N3 A8 Y try# e# V% b( x) q4 y/ k/ Y
{
q8 p1 o9 G# _# r CDatabase database;# [+ A1 ^# x: o: S5 ?% m3 L# y- Y
database.OpenEx( _T("DSN=screw"), CDatabase::noOdbcDialog);
/ w4 ^9 x8 C5 L- U+ `0 @' Q Clzh ScrewSet;$ q X1 s, z. r3 {9 M( n; c/ i
ScrewSet.Open( CRecordset::snapshot, "select * from lzh" ); {. g8 {; }& D) H* X
int i = 0;
; x, r5 y" S5 C) t) r% Q do
/ n7 V3 J" K/ ^) B3 l {
7 [$ q; Q' B3 i% L) _6 } if( ScrewSet.IsEOF( ) ) break;
7 O% w5 h, B( ^8 W% }3 @% b strcpy( names[ i++ ] = (char*)malloc( sizeof( char ) * 30 ), ScrewSet.m_SP );( r% t. V9 i; m3 G* _! l0 \
" Z: C& N( z8 }3 V5 W ScrewSet.MoveNext( );$ N2 W2 x% n' U% V& q" f
}while( 1 );
! l7 G3 o2 l4 h9 k& u, [ database.Close( );
1 r6 _+ z; h. S' ?' N data.item_id = SCREW_OPTION_CHOICE;
# `2 Y* f2 j: ?" ?& t5 s8 e, V+ L data.item_attr = UF_STYLER_SUBITEM_VALUES;+ f1 i/ A4 ~# L! D* ?
data.count = SCREW_OPTION_CHOICE_COUNT;% A6 K' z& V U
data.value.strings = names;
+ x2 [/ N/ j& i6 H6 w9 z' `. f! \: a! I UF_STYLER_set_value( dialog_id, &data );
$ K% `0 v, b( A- J. [: |+ d+ V data.item_attr = UF_STYLER_VALUE;
! T/ x9 e5 Q# {5 e8 R% k' j data.value.integer = 0;
: {+ @& `7 z) L1 R* N UF_STYLER_set_value( dialog_id, &data );
& U3 c7 y! G3 u4 ^$ }, k for ( i = 0; i < SCREW_OPTION_CHOICE_COUNT; i++ )- Z: m1 e4 Y7 \& ^4 w# d
{0 Y% H6 Q) v1 f/ A5 D
free( names[ i ] );
. ]* \% ~1 P% L& Z1 k }5 a5 e, y6 k9 p; A
}/ H9 i, j3 B6 S! ?0 d6 W
catch( CDBException *pe )' R$ X+ E( ^& z: j, m
{; P9 k5 v5 T2 r ^9 Y s
AfxMessageBox( "Exception!" );
1 g0 |) E0 q% ]1 u" l4 b- } AfxMessageBox( pe->m_strError );
1 r, O; F6 X7 X$ l pe -> Delete( );3 |8 p8 G+ x. s; ]
}
" v* e8 O0 s3 `, Y& G8 k" p8 l UF_terminate();+ [$ O$ ?( L/ `; H
return ( UF_UI_CB_CONTINUE_DIALOG );
7 @( l% t9 W8 ^$ ]4 l, _4 |# _}
/ |+ n" z, X: a) x这运行之后错误是:strcpy(names[i++]=(char*)malloc(sizeof(char)*4),ScrewSet.m_SP);( C% l0 s# [9 ~3 m% Q: v0 R8 K1 u
谢谢各位了。 |