Форум: "Начинающим";
Текущий архив: 2012.04.08;
Скачать: [xml.tar.bz2];
Внизнесоответствие типов Найти похожие ветки
← →
Gu (2011-12-17 01:26) [0]в types.pas и далее в windows.pas объявлен тип
_FILETIME = record
dwLowDateTime: DWORD;
dwHighDateTime: DWORD;
end;
{$EXTERNALSYM _FILETIME} (*)
в проге пишу
uses windows..
Type
_FILETIMEA = record
dwLowDateTime: DWORD;
dwHighDateTime: DWORD;
end;
Function CompareFileTimeA(t1,t2:_FILETIMEA):Integer;
begin
Result:=CompareFileTime(t1,t2); // тут ругается на несоответствие типов t1 и t2 (windows._FileTime и моймодуль._FileTimeA)
end;
почему? ведь типы одинаковые. и для чего в windows.pas вот это (*)
← →
Rouse_ © (2011-12-17 01:37) [1]
> ведь типы одинаковые.
типы разные, один объявлен в модуле windows, второй у тебя, названия у них одинаковые - это да
← →
Германн © (2011-12-17 01:40) [2]
> в проге пишу
>
> uses windows..
>
> Type
> _FILETIMEA = record
> dwLowDateTime: DWORD;
> dwHighDateTime: DWORD;
> end;
>
А зачем это пишешь в своей программе?
← →
Gu (2011-12-17 01:56) [3]
> Rouse_
по вашему выходит, что все типы надо в каждом модуле объявлять. например Dword в windows.pas объявлен как DWORD = Types.DWORD;, однако windows.pas копилится нормально (не кричит что все dword в дальнейших типах и процедурах должны быть types.dword) и если я пишу
type
DWORD = Types.DWORD;
_FILETIME = record
dwLowDateTime: DWORD;
dwHighDateTime: DWORD;
end;
не ругается, что dwLowDateTime: DWORD; <> windows.dword
> А зачем это пишешь в своей программе?
не относится к вопросу
← →
Rouse_ © (2011-12-17 01:59) [4]
> Gu (17.12.11 01:56) [3]
> по вашему выходит, что все типы надо в каждом модуле объявлять
Наоборот не нужно, сие есть зело вредно, тебе об этом даже компилер в ошибке написал о несоответствии типов.
← →
Германн © (2011-12-17 02:02) [5]
> Gu (17.12.11 01:56) [3]
>
>
> > Rouse_
>
> по вашему выходит, что все типы надо в каждом модуле объявлять
> > А зачем это пишешь в своей программе?
> не относится к вопросу
>
Проспись сначала. А завтра может поймёшь где ты тупишь.
Хотя это вряд ли. Не читая учебников - очень трудно написать грамотный код.
← →
Gu (2011-12-17 02:07) [6]просто не понятно, почему если пишу
Type
myInt=Integer;
myNewInt=-2147483648..2147483647;
var a:myint;b:myNewInt;
begin
a:=b;
end;
все нормльно
а если
uses windows;
type
_FILETIMEA = record
dwLowDateTime: DWORD;
dwHighDateTime: DWORD;
end;
var x:_FILETIMEA;y:_FILETIME;
begin
x:=y;
end;
вызовет ошибку компиляции.
а проспаться сам можешь.
← →
Rouse_ © (2011-12-17 02:18) [7]Справку стало быть не читаешь совсем?
← →
Gu (2011-12-17 02:22) [8]
> Справку стало быть не читаешь совсем?
Больше нечего ответить?
← →
Rouse_ © (2011-12-17 02:33) [9]
> Gu (17.12.11 02:22) [8]
> Больше нечего ответить?
Хм, в такой постановке вопроса, вероятнее всего нет...
← →
Gu (2011-12-17 02:43) [10]и мне
← →
Rouse_ © (2011-12-17 02:45) [11]Больно слышать, но все-же прочитай справку...
← →
Германн © (2011-12-17 04:11) [12]
> а проспаться сам можешь.
>
Проспаться я и так просплюсь. :)
А вот
"<Цитата>
Gu (17.12.11 02:07) [6]
просто не понятно, почему если пишу"
это уже проблема! Но это твоя проблема.
Может всё-таки почитаешь учебники?
← →
Gu (2011-12-17 06:56) [13]
> Но это твоя проблема.
конечно моя, вроде бы форум кк раз для этого и создан? чтобы проблемы решать, в особенности эта ветка.
уже ответили через 10 минут после того, как вопрос задал, тут: http://stackoverflow.com/questions/8540780/discrepancy-of-types
а тут только выясняют, для чего это надо или спать отправляют или справку читать. вы поймите - людям ответы нужны, а не поучения (нравоучения, сожаления и тп), которые каждый и так может дать любому и чем тут в "ответах" в основном занимаются. Флуд один, ей богу.
← →
MBo © (2011-12-17 08:43) [14]На SO тебе прочитали справку. Вслух, с выражением.
← →
Ega23 © (2011-12-17 09:40) [15]
> вы поймите - людям ответы нужны, а не поучения
Тебе никто ничего не должен.
← →
Ega23 © (2011-12-17 09:43) [16]А по сабжу - CompareMem тебе в помощ. Но вопрос из ряда извращений, да-с.
← →
Плохиш © (2011-12-17 13:24) [17]
> Rouse_ © (17.12.11 02:18) [7]
> Справку стало быть не читаешь совсем?
О, ты только это понял.
← →
oxffff © (2011-12-17 15:23) [18]На SO не совсем корректный ответ.
Есть понятие структурной и именной эквивалентности типов.
Для записей в Delphi используется именная эквивалентность типов.
← →
KilkennyCat © (2011-12-17 16:20) [19]
> Gu (17.12.11 06:56) [13]
> вроде бы форум кк раз для этого и создан? чтобы
> проблемы решать, в особенности эта ветка.
чтобы добровольно помогать решать. почувствуй разницу.
но ты всегда можешь подать в суд, если что не так. это твое гражданское право.
> вы поймите - людям ответы нужны, а не поучения
не обобщай, то, что тебе нужно - мне, например, не нужно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.04.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c