Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1323350471
TUser
2011-12-08 17:21
2012.04.08
Текущий момент


15-1323111525
C++?
2011-12-05 22:58
2012.04.08
Разница компиляторов С++


15-1323418760
_Андрей_
2011-12-09 12:19
2012.04.08
Наложение прозрачного изображения на сканируемые документы


15-1323231809
кирилл
2011-12-07 08:23
2012.04.08
для лисенка


2-1324146298
SQLEX
2011-12-17 22:24
2012.04.08
Почему? Value assigned to ... never used





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