Mam funkcję, która przyjmuje jako parametr LPTSTR. Chcę do tego LPTSTR dopisać na początku 1 znak np. '1'. Jak to zrobić?
Lptstr to nic innego jak char* wiec musisz uzyc funkcji strcpy lub strcat
MJay napisał(a)
Lptstr to nic innego jak char* wiec musisz uzyc funkcji strcpy lub strcat
Nie do końca, a najczęściej to wręcz nieprawda.
W zależności od tego czy ustawione jest UNICODE
(a najczęściej jest), LPTSTR
to LPSTR
(nieustawione) albo LPWSTR
(ustawione).
LPSTR
to faktycznie char*
, ale LPWSTR
to wchar_t*
.
Jeżeli korzystasz z typu LPTSTR, należy użyć funkcji/makr _tcscpy_s
lub _tcscat_s
. Jeżeli piszesz w C++, ich użycie będzie identyczne jak tradycyjnych funkcji.
Mam pytanie do tematu. Nie lepiej po prostu stosowac LPSTR zamiast LPTSTR? Ja zawsze tak robilem i nie bylo zadnych bledow.
Ps. Przepraszam za brak polskich znakow.
Nie lepiej po prostu stosowac LPSTR zamiast LPTSTR?
Nie, nie lepiej, bo tracisz możliwość obsługi Unicode.
Ale można.
W CRT Visuala jest _tcscat
(strcat dla TCHAR'ów).
http://msdn.microsoft.com/en-us/library/h1x0y282.aspx
Podobnie jest dla innych funkcji. Lista pod tym linkiem (trzeba sobie wybrać konkretną funkcję i dopiero wewnątrz jej opisu podane są wersje TCHAR):
http://msdn.microsoft.com/en-us/library/f0151s4x.aspx
Są jeszcze funkcje systemowe:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb759983%28v=vs.85%29.aspx