局部变量好像提前被清除了?
void GetMyNum( WCHAR *pMyNum,DWORD *pdwChars )
{
BYTE pNum[]={0x23,0x45,0x56,0x34,0x4f,0xff,0xff,0xff};
//这里 dwChars必须声明为 const DWORD,不然会被提前清除,不知道为什么?
DWORD dwChars = sizeof( pNum )*2;
if( pdwChars )
{ *pdwChars = dwChars; }
if( !pMyNum )
{ return; }
for( UINT i=0; i< sizeof( pNum ) ; i++ )
{
WCHAR myChar[2]={0};
_stprintf( myChar,_T("%02x"), pNum[i] );
_tcsncat( pMyNum, myChar, 2 );
}
//运行到这里时,dwChars被置为零了,有时候甚至提示 access violation ,搞不懂了
//替换 f为 空格
for( UINT i=0; i< dwChars; i++ )
{
if( towlower( pMyNum[i] ) == _T('f') )
{ pMyNum[i] = _T(' '); }
}
}
//-----------------------------------------------------------------------------
求解,dwChars为什么必须声明为 const DWORD ?