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

Вниз

несоответствие типов   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
15-1323203403
Юрий
2011-12-07 00:30
2012.04.08
С днем рождения ! 7 декабря 2011 среда


15-1323421521
Ziggor
2011-12-09 13:05
2012.04.08
C чего начать?


8-1224519235
REY75
2008-10-20 20:13
2012.04.08
Толщина линии в компонента Chart


1-1290932751
skeef
2010-11-28 11:25
2012.04.08
динамическое создание пиктограммы


15-1323421930
aka
2011-12-09 13:12
2012.04.08
Текстовый редактор на PaintBox.