J'ai écrit un programme basé sur unicode avec libav et je veux faire un peu de fichier via libav avec le nom de fichier "中 .mp4".appel avio_open fonction avec nom de fichier non-anglais est invalide
ce nom de fichier n'est pas l'anglais, et quand j'appelle, la fonction renvoie un entier positif (ne pas échouer).
mais il y a "ѱ0.mp4" au lieu de "中 .mp4". (nom de fichier invalide.)
quel est le problème?
char * szFilenameA = 0;
#ifdef _UNICODE
CSHArray<char> aFilenameBuffer;
aFilenameBuffer.Alloc(lstrlen(szFileName) * 2);
ZeroMemory(aFilenameBuffer, aFilenameBuffer.GetSize());
WideCharToMultiByte(CP_ACP, 0, szFileName, lstrlen(szFileName), aFilenameBuffer, aFilenameBuffer.GetSize(), NULL, NULL);
szFilenameA = aFilenameBuffer;
#else
szFilenameA = (TCHAR *)szFileName;
#endif
ZeroMemory(m_pOutputFormatCtx->filename,1024);
_snprintf(m_pOutputFormatCtx->filename, strlen(szFilenameA), "%s", szFilenameA);
avio_open(&m_pOutputFormatCtx->pb, szFilenameA, AVIO_FLAG_WRITE)