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

Вниз

Project -> Options -> Compiling -> Symbol reference info   Найти похожие ветки 

 
Masterucs ©   (2015-08-21 15:01) [0]

Если указанная опция стоит в "None", то при билде проекта ругается:

[DCC Hint] XXX.pas(YYY): H2443 Inline function "Point" has not been expanded because unit "Types" is not specified in USES list


Потому что в модуле XXX.pas вызывается функция Point из Classes.pas:

function Point(AX, AY: Integer): TPoint; inline;

Но при этом структура TPoint описана в Types.pas, который не включен в uses модуля XXX.pas
В результате, я так понимаю inline сделать нельзя и функция Point вызывается "обычным" способом.

Но почему, если в указанной опции стоит: "Reference info" - то Warning"а уже нету?
Что вообще это за опция? Совсем немного про это писал Gunsmoker: http://www.gunsmoker.ru/2009/04/delphi_19.html
Но насчет "Symbol reference info" буквально одна строчка... не очень понятно, что это конкретно. Разъясните по русски, пожалуйста!


 
Masterucs ©   (2015-08-23 20:37) [1]

Неужто никто не знает?! :(


 
virex(home) ©   (2015-08-24 10:52) [2]

в вопрос не совсем вник но интуиция говорит: попробуйте указать имя желаемого модуля при вызове функции
ModuleName.Point(...)


 
Masterucs ©   (2015-08-24 11:18) [3]

Удалено модератором


 
Германн ©   (2015-08-24 11:45) [4]


> поэтому он не может сделать inline для функции Point.

С чего сделан такой вывод?

> если в указанной опции стоит: "Reference info" - то Warning"а
> уже нету?

А его и так нет. Есть всего лишь Hint.


 
Masterucs ©   (2015-08-24 12:45) [5]


> С чего сделан такой вывод?

а что означает эта надпись?


> [DCC Hint] XXX.pas(YYY): H2443 Inline function "Point" has
> not been expanded because unit "Types" is not specified
> in USES list


 
Германн ©   (2015-08-24 12:57) [6]

Имхо что подробную информацию по этой функции, её переменным и результату показать не будет возможности.


 
Masterucs ©   (2015-08-24 13:34) [7]


> подробную информацию по этой функции, её переменным и результату
> показать не будет возможности.

где показать?


 
Германн ©   (2015-08-24 13:59) [8]

В "Code Browser, Code Explorer и Project Browser".


 
Masterucs ©   (2015-08-24 14:14) [9]


> В "Code Browser, Code Explorer и Project Browser".

никаких проблем с отображением. Да и не может их быть, сама IDE прекрасно показывает все типы, даже если они объявлены в неподключенных модулях. Это легко проверить.

К тому же, если функция не была бы inline то хинта также бы не было. Вопрос именно в том, что её нельзя заинлайнить пока исходный модуль не знает всех структур.


 
Rouse_ ©   (2015-08-24 18:04) [10]

Видимо что-то еще влияет. У меня отключение этой опции не влияет на выдачу хинта.
Вообще "Symbol reference info" - сугубо отладочная и предназначена для работы API, таких как SymGetSymFromAddr и т.п. вызываемых отладчиком интегрированным в IDE.


 
Masterucs ©   (2015-08-24 20:51) [11]


> У меня отключение этой опции не влияет на выдачу хинта.

перебилд делал? А то известная фишка дельфи, что изменение опций проекта не влияет на перекомпил.

Вообще, в документации сказано:
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_inline_units_incomplete_xml.html

Может быть, у тебя в опциях компилера есть пункт "Inlining"?

В XE нету, путем тыка удалось обнаружить, что на выдачу хинта влияет именно Symbol reference info


 
Rouse_ ©   (2015-08-24 22:33) [12]

У меня хе4, ребилд есесно делал.


 
Германн ©   (2015-08-25 01:31) [13]


> Вообще, в документации сказано:

Вообще всё что сказано в документации, что в старой, что в новой мне никак не помогает понять какое отношение глагол expand имеет к существительному function.
Возможно это "новояз" разработчиков Дельфи?


 
Masterucs ©   (2015-08-25 12:27) [14]


> У меня хе4

в опциях Compilling есть свойство "Inlining"?


 
Rouse_ ©   (2015-08-25 13:52) [15]

Code inlining control?


 
Masterucs ©   (2015-08-25 14:00) [16]

Такое свойство и у меня есть. У меня оно не влияет на вывод Hint"а.. Судя по справке - там написано просто "Inlining"...

Но по факту у меня в XE на появление Hint"а влияет именно Project -> Options -> Compiling -> Symbol reference info

Отсюда по умолчанию при сборке Debug версии хинта нету, а при сборке релиза хинт появляется.


 
Германн ©   (2015-08-26 00:23) [17]


> Но по факту у меня в XE на появление Hint"а влияет именно
> Project -> Options -> Compiling -> Symbol reference info
>
> Отсюда по умолчанию при сборке Debug версии хинта нету,
> а при сборке релиза хинт появляется.

А что мешает явно указать в uses модуль Types? Есть какие-то серьёзные причины или только религиозные убеждения?


 
Masterucs ©   (2015-08-26 08:46) [18]

Это очевидно.

Вопрос не в том что делать, а почему Project -> Options -> Compiling -> Symbol reference info влияет на вывод хинта


 
Rouse_ ©   (2015-08-26 10:20) [19]

Скорее всего получается ошибка IDE, которую позже поправили, бо сам видишь, в ХЕ4 такого поведения нет.


 
Masterucs ©   (2015-08-26 10:37) [20]


> Скорее всего получается ошибка IDE

ну коли профи говорят ,что так - значит, так :)


> в ХЕ4 такого поведения нет.

интересно какая у тебя опция повлияет на вывод данного хинта..


 
Rouse_ ©   (2015-08-26 12:30) [21]

Если не подключать Types то всегда выводится.


 
Masterucs ©   (2015-08-26 12:37) [22]


> Если не подключать Types то всегда выводится.

а ты все опции в компилинге перебрал?


 
Rouse_ ©   (2015-08-26 13:49) [23]

Нет, лениво.
Скачай себе триалку и сам попробуй поэксперементировать.


 
Masterucs ©   (2015-08-26 14:54) [24]

еще более лениво



Страницы: 1 вся ветка

Текущий архив: 2016.05.08;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.008 c
15-1440451804
Юрий
2015-08-25 00:30
2016.05.08
С днем рождения ! 25 августа 2015 вторник


2-1411153202
ser
2014-09-19 23:00
2016.05.08
запись в ini файл


15-1440158492
Masterucs
2015-08-21 15:01
2016.05.08
Project -> Options -> Compiling -> Symbol reference info


15-1440264646
Pavia
2015-08-22 20:30
2016.05.08
Линкер и редактор объектников


11-1263726606
GradeMax
2010-01-17 14:10
2016.05.08
Как задать высоту строк в ListView?