När jag försöker ta fram filnamnet från en sökväg får jag en konstig utmatning. De fyra första tecknen ersätts med '?' och sen kommer den återstående delen av sökvägen (ung. så här: ????[wszPath]). Varför blir filnamnet så och vad gör man åt det?Problem med filnamn
Så här ser koden ut:
// Här ska filnamnet tas fram
_wsplitpath( wszPath, wszDrive, wszDir, wszFileName, wszExt );
_wmakepath( wszFile, NULL, NULL, wszFileName, wszExt );
// Och här visas filnamnet i en MessageBox
UnicodeToAnsi( lpCmdLine, wszFile, sizeof(lpCmdLine) );
DISPLAYMSG( static_cast<char*>(lpCmdLine) );
// Så här ser UnicodeToAnsi ut:
BOOL UnicodeToAnsi(LPSTR pszAnsiString,
LPWSTR pszwUniBuff,
DWORD dwAnsiBuffSize)
{
int iRet = 0;
iRet = WideCharToMultiByte(CP_ACP, 0, pszwUniBuff, -1,
pszAnsiString, dwAnsiBuffSize, NULL, NULL);
return ( 0 != iRet );
}
Om jag gör en ny LPSTR och försöker lägga in wszFile i den krascar programmet. Varför?
/ Peter