Beruflich bedingt, muss ich mich mit C/C++ rumsch...auseinandersetzen. Da ich gerne von Anfang an auf der Sicherenseite sein will verwende ich nur jeweils die
Unicode Funktionen und als Datentyp für Zeichenfolgen dann TCHAR. Das sieht dann zum Beispiel so aus:
Code:
/*
* SysErrorMessage
* Obtains error message strings for the system error codes returned by GetLastError
*
*/
TCHAR *SysErrorMessage (DWORD dwErrorCode, TCHAR *pszBuf, int nLenBuf)
{
FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM | (pszBuf ? 0 : FORMAT_MESSAGE_ALLOCATE_BUFFER),
NULL,
dwErrorCode ? dwErrorCode : GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
pszBuf ? pszBuf : (LPTSTR)&pszBuf,
pszBuf ? nLenBuf : 0,
NULL);
return pszBuf;
}
/*
* FileExistsW
* Checks whether a given file exists or not
*
*/
BOOL FileExistsW(TCHAR *Filename) {
WIN32_FIND_DATA wfd;
HANDLE hFile;
hFile = FindFirstFileW(Filename, &wfd);
if (hFile != INVALID_HANDLE_VALUE) {
FindClose(hFile);
}
return (BOOL)hFile;
}
Mache ich denn das so richtig? Funktionieren tut es, aber das muss noch lange nichts heißen.