Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];

Вниз

Как правильно использовать Команду MOVE ?   Найти похожие ветки 

 
IgorKuz   (2003-01-23 16:15) [0]

type
PMyRec = ^TMyRec;
TMyRec = record Data1 : word; Data2 : integer; end;

function GetBufr (P : pointer) : TMayRec;
var
PR : pointer;
N : TMyRec;
begin
Move(P,PR^,SizeOf(TMyRec));
// А вот Здесь уже не работает ?
N:=PMyRec(PR)^;
// ....
end;
procedure MyProc;
var
PR : pointer;
N : TMyRec;
begin
GetMem(P,100);
// .... Заполняю буфер
Move(P,PR^,SizeOf(TMyRec));
// Здесь все работает
N:=PMyRec(PR)^;
GetBufr(P);
//.....
end;
begin
MyProc;
end;
В функции GetBufr Данные в N записываются наполовину верно


 
Игорь Шевченко   (2003-01-23 16:17) [1]

Move(P^,PR^,SizeOf(TMyRec));


 
gsu   (2003-01-23 16:18) [2]

+GetMem"s


 
REA   (2003-01-23 16:26) [3]

Чтобы недоразумений не было использовать CopyMemory из W32API


 
Игорь Шевченко   (2003-01-23 16:28) [4]

var
PR : pointer;
N : TMyRec;
begin
Move(P,PR^,SizeOf(TMyRec));

А PR, конечно, инициализировать не надо. И warnings у компилятора отключен по умолчанию ? В сад!


 
Anatoly Podgoretsky   (2003-01-23 16:29) [5]

К Чубайсу


 
IgorKuz   (2003-01-23 16:33) [6]

Поправка после GetMem(P,100) есть GetMem(PR,SizeOf(TMyRrec))


 
Anatoly Podgoretsky   (2003-01-23 16:46) [7]

Не видать определения P


 
han_malign   (2003-01-23 16:59) [8]

И абсолютно не понятен смысл всех этих танцев с бубном:
GetBufr - абсолютно ничего не делает кроме Access Violation
Может подразумевалось
function GetBufr(p: pointer; Index: integer): TMyRec;
begin
inc(DWORD(p),Index*sizeof(TMyRec));
move(p^,Result,sizeof(TMyRec));
end;
??????????
З.Ы. Ты насчет области видимости переменных слышал??? N и PR в GetBufr, и N и PR в MyProc - это абсолютно разные переменные... А P совпадают только потому, что глобальная P передается в аргументе P...



 
IgorKuz   (2003-01-23 17:17) [9]

Han_Malign
Это написано лишь для примера
мне нужно работать с указателями а типы считования могут быть разные
на счет видимости переменных я слышал :) . Одинаковые
названия просто для простоты понимания.


 
gsu   (2003-01-23 17:19) [10]

>> IgorKuz ©
Так как же те помочь, ежли ты пишешь, что ни попадя ?



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

Форум: "Основная";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.02 c
1-5036
blond
2003-01-24 09:23
2003.02.03
Терминирование потока (thread)


1-4920
Checist [root]
2003-01-26 01:16
2003.02.03
Типа клавиши, блин


8-5094
Ал
2002-10-18 14:50
2003.02.03
ZLib


14-5135
Teapot
2003-01-16 16:38
2003.02.03
Компонент DialUp


14-5214
Сатир
2003-01-15 18:04
2003.02.03
есть ли в вин2к аналог линуксовой команды smbstat?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский