int SCREW_constructor ( int dialog_id,
& Y+ M. z* f. J! g void * client_data,
% t7 _$ ?2 J9 p6 ]5 w UF_STYLER_item_value_type_p_t callback_data)
7 r4 o+ z7 P7 d& W* ?# g{
4 u- h! _6 w# l1 z if ( UF_initialize() != 0) ) p/ }! T: E- c3 m# v" }* \+ H
return ( UF_UI_CB_CONTINUE_DIALOG );
; @1 V5 P m# c3 S+ K5 o4 a8 A UF_STYLER_item_value_type_t data;( }5 j; `* ^ P3 Y [/ E1 ~
char *names[ SCREW_OPTION_CHOICE_COUNT ]; 1 u, T7 V2 }5 g9 m
try
' a6 C' G) u' M& V) _4 }/ o( e { J- B1 R" V% `; c8 P
CDatabase database;4 Z, ~6 u% _( s: I' M! Y- Y
database.OpenEx( _T("DSN=screw"), CDatabase::noOdbcDialog);4 Z- A* @: w( w
Clzh ScrewSet;: X7 H9 c; c" l4 I
ScrewSet.Open( CRecordset::snapshot, "select * from lzh" );
3 z8 _+ \$ h$ F; D \9 q int i = 0;
. p$ }; p$ A/ p do
! K, a# j6 t" h) c; W {: y0 u! k/ F, z/ F
if( ScrewSet.IsEOF( ) ) break;
; l8 T1 H7 ]/ ? h9 a4 a; b; j strcpy( names[ i++ ] = (char*)malloc( sizeof( char ) * 30 ), ScrewSet.m_SP );
5 p2 x D- Y7 G/ |; s( K ' K* ]8 f" u. m. j
ScrewSet.MoveNext( );- j6 O. r. d% ]1 N( j
}while( 1 );
. e8 {' T! t) c( ]) c database.Close( );
$ m% g( y9 Q7 E; x% ] data.item_id = SCREW_OPTION_CHOICE;
+ `4 U% p+ q' u! c data.item_attr = UF_STYLER_SUBITEM_VALUES;' a2 f) [6 J7 O7 ]
data.count = SCREW_OPTION_CHOICE_COUNT;
/ _& b. B; R% H! l5 M data.value.strings = names;
8 P9 {, A! k, G" p- m UF_STYLER_set_value( dialog_id, &data );$ B* `3 s; K& t4 W* i+ p
data.item_attr = UF_STYLER_VALUE;7 @) {; o# d5 u$ g" n$ `
data.value.integer = 0;0 {' J5 f( V9 y5 ~. | y0 a, I
UF_STYLER_set_value( dialog_id, &data ); Y4 ?4 Z/ l0 l* R7 {0 c
for ( i = 0; i < SCREW_OPTION_CHOICE_COUNT; i++ )
' O7 U3 H* \8 [ X7 Q p q {5 t: t; ~2 k, Q3 | {/ m
free( names[ i ] );
/ }6 ]+ p7 R3 @ {# I4 O( V3 R }
' d# |/ R' {. i% Z; P% \, @ }8 K* G7 I$ _& H. u8 G; E9 r& [
catch( CDBException *pe ); ]6 L4 X/ }: B2 D2 ^( H6 \
{
9 u' m3 c- c6 Y" v4 T: ^: F& ~" R! n AfxMessageBox( "Exception!" );
/ Q3 C5 u! ]) T AfxMessageBox( pe->m_strError );0 q* p2 f" e: ^9 H; G
pe -> Delete( );
/ j! r' w8 D2 s% i/ x6 \6 x) G# i }) l+ f/ K( D9 b* ~+ }4 I
UF_terminate();$ J! x8 ?* W9 ~$ p/ R2 R# Q5 ]
return ( UF_UI_CB_CONTINUE_DIALOG );6 U* K2 {, Q% |
}- v5 Y3 Y7 z+ I' C
这运行之后错误是:strcpy(names[i++]=(char*)malloc(sizeof(char)*4),ScrewSet.m_SP);" a: v5 ?8 S d2 y) b
谢谢各位了。 |