int SCREW_constructor ( int dialog_id,! S" C. q' \; A, E I0 o
void * client_data,9 q' w, N& ~. Z& p! S: b |( [
UF_STYLER_item_value_type_p_t callback_data)8 M! v# C9 o* H- [# q" P2 a
{1 x& o7 a! J. s, }4 m( s8 y
if ( UF_initialize() != 0)
' r' {6 \9 N4 h3 P7 a/ K% k return ( UF_UI_CB_CONTINUE_DIALOG );% d' A/ Q- A- v; _! B
UF_STYLER_item_value_type_t data;
5 A4 N5 y9 U6 _- t& }/ }' S% q char *names[ SCREW_OPTION_CHOICE_COUNT ];
w$ F) ^$ ?' Z5 W+ b: x try% A+ F% @5 d. x' b4 e
{- @% C0 h! ^: q: f# r% B
CDatabase database;
0 g3 X# a+ y- E' }% t database.OpenEx( _T("DSN=screw"), CDatabase::noOdbcDialog);
% K$ Y) q2 u2 r3 N3 e4 Y& P9 [+ R Clzh ScrewSet;
) c' m' i! L7 x' M5 p ScrewSet.Open( CRecordset::snapshot, "select * from lzh" );
4 f, ^& C: j+ h. q( ~( x int i = 0;1 M* h h" v. [4 @2 q' M
do
6 O7 `+ B, H6 M- U {
" N1 _# w% w8 v2 u8 R" X if( ScrewSet.IsEOF( ) ) break;0 c( t. c; g9 v
strcpy( names[ i++ ] = (char*)malloc( sizeof( char ) * 30 ), ScrewSet.m_SP );$ i& D$ i: u3 L. F2 l; K: _
* A3 S5 `) L$ B1 t7 b5 z# g ScrewSet.MoveNext( );: v6 @) @) h* q. F
}while( 1 );
8 p+ ]0 H# j# }. l8 S8 q database.Close( );) D3 o8 f/ }* i0 s( _
data.item_id = SCREW_OPTION_CHOICE;
2 c. Y* S8 w5 ~# O" ^ data.item_attr = UF_STYLER_SUBITEM_VALUES;5 E4 E3 `( H+ S& [) S+ G j6 l' ]
data.count = SCREW_OPTION_CHOICE_COUNT;
& ~4 `7 s/ d. R9 u4 L data.value.strings = names;9 R7 E# _9 I9 B5 ?2 S+ V1 j* D
UF_STYLER_set_value( dialog_id, &data );
7 q7 Y3 O7 L5 k data.item_attr = UF_STYLER_VALUE;! B, e+ v# `! `9 H- E
data.value.integer = 0;
# a0 F# @, t+ _: r" m A: I UF_STYLER_set_value( dialog_id, &data );4 V) F- @9 b7 S" M0 O5 ?0 U( F
for ( i = 0; i < SCREW_OPTION_CHOICE_COUNT; i++ )7 L' J, g, m# s9 K& ]! y5 F
{
8 O8 ~) I9 J! L2 W: P% X( B. C' ^ free( names[ i ] );
p8 s3 g6 |) j6 D4 { } T; }: G5 C6 }& M" ]* {5 z, X. D& E
}- M6 q; j( t$ _! U
catch( CDBException *pe ). D& p' ~8 c6 [4 c6 t( H( y
{
. s1 J1 {2 ^! Q AfxMessageBox( "Exception!" );
# ^) v' j6 J+ K0 V AfxMessageBox( pe->m_strError );
' y/ o5 c3 D" \6 e, C; y pe -> Delete( );% E# L8 G6 x$ M. U( C9 ?+ E1 |
}: U: `3 c1 W& l4 Y8 }9 T
UF_terminate();
6 _6 a- @% R3 P5 ]! Q2 t0 C9 Q return ( UF_UI_CB_CONTINUE_DIALOG );6 }. r7 I* L/ o
}
" o) N2 F# I5 {这运行之后错误是:strcpy(names[i++]=(char*)malloc(sizeof(char)*4),ScrewSet.m_SP);! I6 ?- L! h6 {! I! P d' b
谢谢各位了。 |