Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > C/C++ > C++ Builder
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 15.05.2013, 02:44
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Главный минус Си в том, что даже если заменить на char, компилятор промолчит. Вообще можно всё привести ко всему без проблем, были у меня подобные ошибки. В делфи тоже можно, но синтаксис не располагает к подобным кривым преобразованиям. Поэтому лучше уж компилировать с варнингом или использовать через массив.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #17  
Старый 15.05.2013, 02:46
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Поэтому и говорю, что при отладке выяснится как лучше, посмотри на код выше.

Цитата:
если заменить на char, компилятор промолчит
Про эти приколы уже прочитал.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #18  
Старый 15.05.2013, 02:56
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
extern bool WINAPI proc_seek(unsigned long long offset, void *user);
typedef BOOL WINAPI FILESEEKPROC(unsigned long long offset, void *user);

// из Windows.h:
typedef int BOOL;
Так что в винде BOOL равно не bool, а int. Поэтому и ошибка "нельзя присвоить функцию с результатом int в bool".
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #19  
Старый 15.05.2013, 02:58
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Так здесь тоже bool
Код:
typedef BOOL (CALLBACK FILESEEKPROC)(QWORD offset, void *user); 
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #20  
Старый 15.05.2013, 02:59
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Си ведь регистро-зависимый. В стандарте определен тип bool маленькими буквами, а МС определил свой BOOL большими как int.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
angvelem (15.05.2013)
  #21  
Старый 15.05.2013, 03:02
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Какой же он гад этот С. В начале у меня везде было в таких случаях написано BOOL, компилятор вякал и я изменил на прописные. Наконец-то он успокоился.

Хочешь сказать, что bool уже не является int-ом?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 15.05.2013 в 03:06.
Ответить с цитированием
  #22  
Старый 19.05.2013, 01:28
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Кое как удалось собрать на C (на ассемблер было легче переписать). собирал в Dev-C++, всё заработало, но размер удручает - 60 Кб, на Дельфи - 22 Кб.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #23  
Старый 19.05.2013, 01:53
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Dev-C++ же вроде давно забросили.
Если не секрет, интерессно: зачем нужно было переписывать на си?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #24  
Старый 19.05.2013, 01:58
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Не забросили, живее всех живых. Недавно новая версия вышла.
Хочу сделать Demo-проект на основных языках.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #25  
Старый 19.05.2013, 02:07
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Хочешь сказать, что bool уже не является int-ом?
Ох, только сейчас заметил. Редактирование сообщений никак не оповещает...
Понимаю, что уже не актуально, но все же: с т.з. стандарта - нет. Компилятор имеет право их приравнять на уровне асмы, хотя вряд ли будет - для флага достаточно и байта, а байт уже не int.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #26  
Старый 19.05.2013, 02:17
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Bargest
...Редактирование сообщений никак не оповещает...
Это проблема настройки форума, на некоторых других форумах и редактирование оповещается как новое сообщение.

Полазил в поиске и вычитал, что Dev-C++ не умеет делать маленькие файлы по-сравнению с CBuilder-ом и VC.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter