N
Ich habe lediglich eine sinnvollere Begründung dafür genannt, dass Microsoft diese Makros verwendet. Ein Überladen wäre eben nicht möglich gewesen.
Ich habe auch nicht davon gesprochen, dass Microsoft die Funktionen hätten überladen können, wenn sie gewollt hätten, daß alles vom UNICODE-Makro abhängt, sondern meine Denkweise war so: Hätte Microsoft gewollt, daß die Verwendung von Unicode ausschließlich vom UNICODE-Makro abhängt und nicht auch individuell getätigt werden kann, dann hätten sie auf die Funktions-Makros verzichten und ihren Code so schreiben können:
Header-Datei:
int MessageBox (HWND hWnd, LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType);
Quellcode-Datei (C-Datei):
int MessageBoxA (HWND hWnd, LPCSTR lpszText, LPCSTR lpszCaption, UINT nType);
int MessageBoxW (HWND hWnd, LPCWSTR lpszText, LPCWSTR lpszCaption, UINT nType);
int MessageBox (HWND hWnd, LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType)
{
return
#ifdef UNICODE
MessageBoxW
#else
MessageBoxA
#endif
(hWnd, lpszText, lpszCaption, nType);
}
int MessageBoxA (HWND hWnd, LPCSTR lpszText, LPCSTR lpszCaption, UINT nType)
{
//Blablabla
}
int MessageBoxW (HWND hWnd, LPCWSTR lpszText, LPCWSTR lpszCaption, UINT nType)
{
//Blablabla
}