Вниз
Скачать: CL | DM;

Почему StrLen(PChar(Str:string)) возвращает 0 ?   Найти похожие ветки 

← →
YeasU   (2004-11-03 13:28) [0]

И вообще, как узнать сколько места занимает структура на которую ссылается некоторый pointer?


← →
begin...end ©   (2004-11-03 13:33) [1]


> как узнать сколько места занимает структура на которую ссылается
> некоторый pointer

Если есть просто нетипизированный указатель, и ничего больше не известно, то - никак.


← →
Rem ©   (2004-11-03 13:38) [2]

Менеджер памяти должен об этом знать.

GetMem(p, size);
...
FreeMem(p); // тут же происходит корректное удаление, хоть размер и не указан


← →
YeasU   (2004-11-03 13:49) [3]


procedure TForm1.COMPacket(Sender: TObject; Data: Pointer;
 Size: Integer);
var
 PBuffer:PChar;
begin
 PBuffer:=Data;
 ConvD(PBuffer,clRed);
end;

И если в procedure ConvD делать StrLen(PBuffer:PChar) то говорит, что 0...


← →
Reindeer Moss Eater ©   (2004-11-03 13:55) [4]

Правду говорит


← →
YeasU   (2004-11-03 13:59) [5]


> Reindeer Moss Eater ©   (03.11.04 13:55) [4]

Я почему то не думал, что он мне будет врать ;)
Почему?


← →
Reindeer Moss Eater ©   (2004-11-03 14:02) [6]

Что почему?
Почему не врет или почему ноль?


← →
YeasU   (2004-11-03 14:13) [7]


> Reindeer Moss Eater ©   (03.11.04 14:02) [6]

Ну ладно издеваться то...
Или мне надо сделать так =>
procedure TForm1.COMPacket(Sender: TObject; Data: Pointer;
Size: Integer);
var
PBuffer:PChar;
begin
PBuffer:=Data;
ConvD(PBuffer,Size,clRed);
end;

Procedure ConvD(Data:PChar;Size;Color:TColor);
var
 PData:PChar;
begin
 ...
 GetMem(PData,Size);
 PData:=Data;
 PLen:=StrLen(PData);
 ...
 FreeMem(PData);
 ...
end;

 Хотя по-моему это что то не то...


← →
Reindeer Moss Eater ©   (2004-11-03 14:16) [8]

Ну и что из этого?
Если возвращает ноль, значит первый же байт, на который указывает PData имеет значение $00


← →
Reindeer Moss Eater ©   (2004-11-03 14:19) [9]

GetMem(PData,Size);
PData:=Data;


Гениально.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-1099604866
Knight
2004-11-05 00:47
2004.11.21
Подскажите с Access ом... плз


1-1099758887
Павел
2004-11-06 19:34
2004.11.21
компонент наподобии TPageControl


1-1099981951
Dima
2004-11-09 09:32
2004.11.21
Как динамически центрировать TLabel на форме.


4-1097657167
OPEN_ALWAYS
2004-10-13 12:46
2004.11.21
CreateFile c OPEN_ALWAYS - Почему каждый раз


14-1099501188
kdy
2004-11-03 19:59
2004.11.21
Кто как обновляет свои приложения




   Наверх