Форум: "Начинающим";
Текущий архив: 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