这是一个项目中遇到的,纠结了很久,后来发现我多次在门前徘徊就是没看到门。
太粗心大意了。 写在这里给自己留个纪念。
/*int len = WideCharToMultiByte(CP_ACP,0,strFile,strFile.GetLength(),NULL,0,NULL,NULL);
char *buffer = new char[len+1];
WideCharToMultiByte(CP_ACP,0,strFile,strFile.GetLength(),buffer,len,NULL,NULL);
buffer[len]='\0';*/
char buffer[100];
strcpy(buffer,CW2A(strFile.GetBuffer(strFile.GetLength())));
filePath = buffer;
strFile.ReleaseBuffer();
LPCTSTR *ppFileName = (LPCTSTR*)&filePath;
//这个是多字节下的。
/*mFilePath = strFile.GetBuffer(strFile.GetLength());
strFile.ReleaseBuffer();
LPCTSTR ppFileName = mFilePath ;*/
unsigned long plChannelCount=0;
HANDLE hDecorder = RM_OpenFileDecoder(ppFileName,1,&plChannelCount);
三种方法都能将unicode转char*
我卡在了将char*转成LPCTSTR,当时我的字符集是多字节。纠结了很久后来群里求助解决了。
LPCTSTR *ppFileName = (LPCTSTR*)&filePath; 当初好像是这里转换出了问题。