Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

Значение формальных и фактических параметров различается!!!!!!!!!   Найти похожие ветки 

 
Dust ©   (2005-10-13 14:28) [0]

function calc_addr (const pd : Pointer; const shift1, shift2 : dword) : Pointer;
Procedure Retrive_chars (const pdata : Pointer; const shift : dword; const pstr : Pchar; var ln : byte);

implementation
Procedure Retrive_chars (const pdata : Pointer; const shift : dword; const pstr : Pchar; var ln : byte);
begin
 if ln = 0 then
  begin
   while Byte(calc_addr(pdata,shift,ln)^) <>0 do
   begin  pstr[shift-ln]:=Char(calc_addr(pdata, Shift, ln)^); inc(ln);   end;
  end
 else
  CopyMemory (pstr, calc_addr(pdata,shift,ln), ln);
 pstr[ln]:=#0;
 pstr[ln+1]:=#0;
end; //Procedure Retrive_chars

function calc_addr (const pd : Pointer; const shift1, shift2 : dword) : Pointer;
begin
Result :=Pointer(dword(pd)+shift1+shift2);
end;


вызов:

...
       DataLn:=0; Retrive_chars (cmd, Shift, Source_addr, DataLn);
       inc (Shift, DataLn+1);
...

На вход процедуры я подаю одно значение (cmd) а внути процедуры значение указателя совсем другое точнее он вообще на потолок показывает.... :(((
в отладчике: передача параметра pdata происходит через регистр EAX.
что делать как с этим бороться????


 
Digitman ©   (2005-10-13 14:35) [1]

для начала приведи текст декларации идент-ра cmd


> передача параметра pdata происходит через регистр EAX.


и что в том удивительного ?


> что делать как с этим бороться????


с чем ? с передачей 1-го параметра через EAX ?


 
Dust ©   (2005-10-13 14:41) [2]

2 Digitman
декларация, как ты и просил:
Function TServiceShortMessage.SMSfrom_deliver_smCMD (const cmd : Pointer; const size : DWORD): pData_from_deliver_sm;
>с чем ? с передачей 1-го параметра через EAX ?
с различием значений формальных и фактических параметров


 
Dust ©   (2005-10-13 14:47) [3]

Может быть я что-то не знаю, или чего-то не понимаю?
логика подсказывает что такого быть не может...
ктонибудь уже с таким сталкивался?


 
Digitman ©   (2005-10-13 15:00) [4]


> декларация, как ты и просил


я просил декларацию ФАКТИЧЕСКОГО параметра, который у тебя передается в кач-ве формального cmd-параметра метода SMSfrom_deliver_smCMD ..

мало ли какой указатель (и на что он указывает) ты фактически передаешь этим параметром ! .. это ж нужно видеть, прежде чем какие-то умозаключения делать) ...


> с различием значений формальных и фактических параметров


у формального параметра нет никаких "значений" - у него есть лишь имя и тип

значение же есть только у факт.параметра


 
Dust ©   (2005-10-13 15:08) [5]

всё, спасибо
ТЕМА ЗАКРЫТА
я чуть чуть раньше портил память....
прошу прощенья за беспокойство


 
Dust ©   (2005-10-13 15:21) [6]

и в функции к тому же ошибка...



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

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

Наверх




Память: 0.48 MB
Время: 0.036 c
2-1129156132
X-Fi
2005-10-13 02:28
2005.11.06
Как преобразовать число к бОльшему квадрату двойки ?


6-1121972461
BBCHa
2005-07-21 23:01
2005.11.06
Создание письма в почтовой программе по умолчанию


2-1129025875
Jolik
2005-10-11 14:17
2005.11.06
Windows запрещает доступ к реестру :(


5-1106314196
STS
2005-01-21 16:29
2005.11.06
Регистрация ActiveX контрола


14-1129283945
Fin
2005-10-14 13:59
2005.11.06
Квоты на ПАПКИ под NTFS?