Bei der Portierung eines C++-Programms von 32 auf 64 Bit unter Windows habe ich festgestellt, dass _tcslen nicht unterstützt wird und stattdessen strlen/wcslen (für Nicht-Unicode/Unicode) verwendet werden sollte. Ich begann mich zu fragen
- Wenn wcslen Teil der ISO/IEC 14882:2003 C++ Standardbibliothek ist. Wie ich sehe, wird diese Funktion sowohl von g++ als auch von VC++ unterstützt. Auch in offene Gruppe Ich habe einen Hinweis gefunden, der besagt
The functionality described on this reference page is aligned with the ISO C standard
hat aber nicht erwähnt, ob es sich um C89 oder C99 handelt. - Ist irgendwo dokumentiert, dass _tcslen nicht mit Win64 kompatibel ist? Auch die MSDN-Link deutet nichts an.
- Kann bei Unicode wcslen versehentlich anstelle von _tcslen verwendet werden?
1 Stimmen
_tcslen
ist nur ein #define für entwederwcslen
ostrlen
je nachdem, ob_UNICODE
definiert ist. Sie können jederzeit tchar.h kopieren oder eine eigene Version erstellen, damit dies auf jeder Plattform funktioniert. Wenn es nicht funktioniert, müssen Sie wahrscheinlich nur tchar.h einbinden.