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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.032 c
6-1113745774
Alek_1
2005-04-17 17:49
2005.11.06
Indy + SSL


14-1129217046
ArtemESC
2005-10-13 19:24
2005.11.06
Дизассемблер-редактор


4-1125891164
LEXX_55
2005-09-05 07:32
2005.11.06
Как изменить кодировку в TXT


8-1117980186
-=Germe$=-
2005-06-05 18:03
2005.11.06
Визуализация речи...


4-1125679951
Ксардас
2005-09-02 20:52
2005.11.06
Подскажите ссылочку или в каком направлении копать





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский