Created attachment 352490 [details] [diff] [review] v1.0 patch Change the function call CeGetCanonicalPathName in map.cpp in the WinCE Shunt Library to the explicit wide-char version CeGetCanonicalPathNameW. This is part of cleaning up implicit wide-char function calls and making the function calls be explicitly wide-char.
Comment on attachment 352490 [details] [diff] [review] v1.0 patch >- CeGetCanonicalPathName(wcscat(cwd,relPath), absPath, maxLength, 0); > >+ CeGetCanonicalPathNameW(wcscat(cwd,relPath), absPath, maxLength, 0); according to msdn CeGetCanonicalPathName is unambiguous and takes wide char arguments. It also doesn't mention having a wide char version. Is CeGetCanonicalPathNameW documented anywhere? http://msdn.microsoft.com/en-us/library/aa915566.aspx
The WinMobile 6 PPC include file winbase.h has this for CeGetCanonicalPathName: WINBASEAPI DWORD WINAPI CeGetCanonicalPathNameA( IN LPCSTR lpPathName, __out_ecount(cchCanonicalPathName) LPSTR lpCanonicalPathName, IN DWORD cchCanonicalPathName, IN DWORD dwReserved ); WINBASEAPI DWORD WINAPI CeGetCanonicalPathNameW( IN LPCWSTR lpPathName, __out_ecount(cchCanonicalPathName) LPWSTR lpCanonicalPathName, IN DWORD cchCanonicalPathName, IN DWORD dwReserved ); #ifdef UNICODE #define CeGetCanonicalPathName CeGetCanonicalPathNameW #else #define CeGetCanonicalPathName CeGetCanonicalPathNameA #endif // !UNICODE Since this construct is the same as other constructs within the Windows Desktop programming environment, I thought we wanted to explicitly call teh wide-char version of this function. Is this assumption not the case for the CeGetCanonicalPathName function?
My mistake - the compiler was actually failing because I was trying to build the WinCE Shunt for Windows 2003 -- a version of Windows "Mobile" that did not have the CeGetCanonicalPathName API. This bug is marked as a duplicate of bug 467555