int SCREW_constructor ( int dialog_id,
: G. S; ^4 ^. F6 ]- v9 z void * client_data,
6 h% P% o( R) C$ [ UF_STYLER_item_value_type_p_t callback_data)
) Y2 ^& V" }+ t{) Z+ A( V, I9 a. b
if ( UF_initialize() != 0) 1 g! U- r1 H/ [8 C: k! `
return ( UF_UI_CB_CONTINUE_DIALOG );
( ~" |% r. n6 ] UF_STYLER_item_value_type_t data;3 I! o0 F+ j0 T* v3 r4 h: @* B$ V+ n' \
char *names[ SCREW_OPTION_CHOICE_COUNT ]; 6 o# o2 j+ n: x( `4 V
try4 I5 ^7 X6 h+ C" B7 w$ O' [5 h
{2 [! H j! b# \1 w- X
CDatabase database;
3 c+ W7 C" G% Z9 W) ?! ^( X database.OpenEx( _T("DSN=screw"), CDatabase::noOdbcDialog);
: _! D* y" J5 u8 y' G8 O+ ]7 i. P* i' j! \ Clzh ScrewSet;9 D* w: k. S. X; D3 K0 u1 h
ScrewSet.Open( CRecordset::snapshot, "select * from lzh" );
3 G/ i4 I& Q Y4 I- F( Q int i = 0;0 u! z! c) N0 u! k# c* z/ t
do/ w9 X7 A6 c0 p1 F3 r
{
7 I+ i. B4 E" D7 t5 ~% A) X if( ScrewSet.IsEOF( ) ) break;: a" @7 k) y I6 f4 k+ S' s: k
strcpy( names[ i++ ] = (char*)malloc( sizeof( char ) * 30 ), ScrewSet.m_SP );9 \7 {; v4 e* C$ A4 \6 `7 U
6 R/ L. V4 Q- k7 R8 ^& o' X2 R. O
ScrewSet.MoveNext( );: K& s2 D. L0 w
}while( 1 );% F9 {4 w' r; ?8 S1 w
database.Close( );
6 T G& z3 t: H; A* o! c" X/ |3 g data.item_id = SCREW_OPTION_CHOICE;
* j: Y9 |6 `6 L+ X! n- b4 T4 q( V data.item_attr = UF_STYLER_SUBITEM_VALUES;- d- E: r5 x! ?* J- y {
data.count = SCREW_OPTION_CHOICE_COUNT;" f N2 V/ u. R6 P( `" [
data.value.strings = names;
+ R4 g/ K" A# O- p, z! ?, w7 j7 b @- P UF_STYLER_set_value( dialog_id, &data );- g! q. ]/ }3 S$ w( q; s" B
data.item_attr = UF_STYLER_VALUE;
- }6 p0 L$ O, d% v. x data.value.integer = 0;
, b7 \2 }1 u1 S. X6 f+ r UF_STYLER_set_value( dialog_id, &data );4 l. V8 {0 m7 L3 |7 y
for ( i = 0; i < SCREW_OPTION_CHOICE_COUNT; i++ )
6 c; p+ Q% q" n. I6 i {
$ ~+ F( d7 f4 ~3 Q0 z* S free( names[ i ] );+ j" h' t1 f1 c5 V* V) U, E2 v* L
}
& O% U) F3 F& s* R# R# Z7 ] }! P6 s* q& P8 F/ e9 v
catch( CDBException *pe ). u+ h2 z' O" [. [$ k( y
{; R/ A# y& y+ x- X5 U5 D. H; e7 }
AfxMessageBox( "Exception!" );0 B8 C% m; L) F. ~/ t+ E) j+ \6 C
AfxMessageBox( pe->m_strError );
Q# o! `9 \0 Z5 T$ |6 z0 e: V. ] pe -> Delete( );
5 j, Z' d8 H# d( W# f }/ X; P2 J }( `' y7 z6 M8 H7 Q. G5 v {: E1 o
UF_terminate();
! X) o/ I; h$ c- U return ( UF_UI_CB_CONTINUE_DIALOG );
. a6 h6 m& n# n}) F! } x4 b6 n. w) n/ q* A/ `8 e
这运行之后错误是:strcpy(names[i++]=(char*)malloc(sizeof(char)*4),ScrewSet.m_SP);
! r2 }2 `5 z' p& t谢谢各位了。 |