Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Größe von Lptstr

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.11.2003, 18:56 Uhr
niels_ole_salscheider



Hallo,
was muss ich, wenn ich die max. zu kopierenden Bytes einer Funktion übergeben muss und dazu eine LPTSTR-Varaible (bzw. Pointer) für erstere übergeben oder kann die Zahl theoretisch unendlich groß sein?

Ole
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.11.2003, 19:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi folgendes Beispiel:


C++:
int func(LPTSTR lpString, int iLen)
{
  //...
}



Bei obiger Funktion sollte man normalerweiße die Größe des Buffers, also wieviel Buchstaben reinpassen, angeben. Meistens sind das dann solche Funktionen, die z.b was in den Buffer reinkopieren und deswegen wissen müssen ob der String überhaupt groß genug ist das alles reinpasst.

D.h: Nein, sie kann nicht unendlich groß sein! Sie sollte maximal die Größe des Buffers haben.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.11.2003, 20:01 Uhr
niels_ole_salscheider



OK, aber wie kann ich angeben, wie groß mein Buffer bei LPTSTR sein soll?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.11.2003, 20:24 Uhr
0xdeadbeef
Gott
(Operator)



C++:
TCHAR mein_string[laenge_des_buffers];


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.11.2003, 20:31 Uhr
niels_ole_salscheider



Ich hab die Variablen ja so deklariert:
LPTSTR mein_string;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.11.2003, 08:54 Uhr
ao

(Operator)


LPTSTR ist lediglich ein Zeiger. Es gibt bisher keinen Speicherbereich, in dem du was speichern könntest.

Du musst es machen wie 0xdeadbeef vorgeschlagen hat, oder so:

C++:
LPTSTR mein_string = malloc (laenge * sizeof (TCHAR));

/* jetzt func () aufrufen und mit dem String was anfangen */

free (mein_string); /* nicht vergessen */



ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: