看我的!
lpsz1=要转换的文字,lpsz2结果存储缓冲,n2缓冲长度,fGB2BIG5转换方向,TRUE=GB->BIG5,FALSE=BIG->GB
void Convert(LPSTR lpsz1,LPSTR lpsz2,int n2, BOOL fGB2BIG5)
{
WCHAR wszBuff[MAX_BUFFER];
int n;
n = MultiByteToWideChar(
fGB2BIG5 ? 936 : 950,
MB_PRECOMPOSED,
lpsz1,lstrlen(lpsz1)+1,
wszBuff,MAX_BUFFER);
WideCharToMultiByte(
fGB2BIG5 ? 950:936,
WC_COMPOSITECHECK,
wszBuff,n,
lpsz2,n2,
NULL,NULL);
}
在NT下执行没问题,Win9x下没试。用这个来生成转换表也是非常简单的呢。