0 M. I7 p, P/ H2 \#ifdef _UNICODE 2 M8 x' @) L1 `1 M) D& H, X% \ d8 `. o6 i: ]1 M
m_hFile = CreateFile(pFileName->AllocSysString(), ! T& T. x V9 g) O" H
GENERIC_READ | GENERIC_WRITE, $ S2 Y- h- a# v$ y( C( ]5 D) ~FILE_SHARE_READ, w- Q/ H. I, _) o: D5 aNULL, : K9 D$ A3 x5 dOPEN_EXISTING,% Q7 P% X; ~4 u' t( r. E1 l
FILE_ATTRIBUTE_NORMAL, & `3 a+ J7 v4 sNULL); O, h1 F0 S0 F7 ?8 Q' u
#else - S g( i; \( lm_hFile = CreateFile(pFileName->GetBuffer(pFileName->GetLength()), $ i Z; V- ^1 Y R5 i. o6 c, nGENERIC_READ | GENERIC_WRITE, . X. R' M7 ~; M0 l' fFILE_SHARE_READ, 9 X+ m V3 [ ^7 U/ i9 z0 qNULL,& E( A$ E0 t+ O
OPEN_EXISTING,9 n: E2 M/ L$ N' ^
FILE_ATTRIBUTE_NORMAL, 4 H4 y f/ ?/ B4 PNULL);. K v4 Z% Q3 K' n
#endif & p5 d1 W0 P& w# x2 Q {! k$ L' j& O: s3) 当我们在UNICODE方式中需要为一个字串常量赋值时可以使用L宏,如: ( l b9 K' b& h* n4 p5 LBSTR wcsStr = L"unicode"; 5 y; N5 U- x8 X/ G. \( E2 E2 C9 c 这样的附值很简便,但是,经过L宏处理后的字串一定是UNICODE,如果你把它赋给一个MULTIBYTE的字串,字符将可能会被截断。3 c! p, c# s7 M
, J6 Z0 k. k' i5 P9 B9 h
另外,VC还提供了一些函数如WideCharToMultiByte和MultiByteToWideChar还有另外的一些宏来支持转换。大家可以看MSDN。 " N- r: {4 [' s5 f# _3 g0 M8 v x* N' r3 u: \0 H( V
t E- s. Y3 d3 H1 H/ a; _5 e* l3.编译器的设置: * @* J5 U) u. b! q- v2 w6 @9 F1 F 首先我们需要在project->settings->C/C++的属性页中的Preprocessor中写入_UNICODE,然后在link属性页中Category中选择output,在Entry-Point symbol 中添加wWinMainCRTStartup,这样,我们的UNICODE工程便大功告成。</FONT></P>