Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: 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 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
14-1099487352
TUser
2004-11-03 16:09
2004.11.21
Кто знает фотошоп?


14-1099645672
Nick-From
2004-11-05 12:07
2004.11.21
Пятничная задачка :) Продажа машины ОКА :)


14-1099641955
d[D]E
2004-11-05 11:05
2004.11.21
Вертикальный DBGrid


14-1099517516
Тохирбек
2004-11-04 00:31
2004.11.21
винт не работает


1-1099835852
Comp
2004-11-07 16:57
2004.11.21
Обмен данными между двумя моими приложениями