Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2010, 20:51   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Смысл директив вида {$EXTERNALYSM ... }

Курю стандартный хелп, но все равно не могу понять смысла этой директивы. Кто поможет решить эту головоломку человеческим языком?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.02.2010, 20:58   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

По моему такой директивы нет
Невероятно но факт, 1 минута и копи паст с другого ресурса (используя google)
Цитата:
Директива EXTERNALSYM предварительно определяет Delphi-символ, определённый в заголовочных файлах, генерируемыми для C++. Если перегруженные процедуры есть определены, все версии будут включены с заголовочного файла.

Тоесть, по-простому, эта директива используется, если у вас есть obj файл, скомпилированный в С++ и вы хотите оттуда использовать функции и переменные.
BOBAH13 вне форума Ответить с цитированием
Старый 09.02.2010, 21:08   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
По моему такой директивы нет
Цитата:
эта директива
?
Цитата:
Если перегруженные процедуры есть определены
Это как?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось mihali4; 10.02.2010 в 03:20.
Alex Cones вне форума Ответить с цитированием
Старый 09.02.2010, 21:11   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

1. Английский я знаю
2. Это не перевод - а как было сказано
Код:
копи паст
3. Это был сарказм - если вы уважаемый вчитаетесь в то что написали то поймете что Y расположили перед S, а не между S и M. Т.е. у вас YSM, а должно быть SYM - External Symbol если не понимаете.
4. Что так трудно было дочитать ? Эмоции переполнили ?
Цитата:
Тоесть, по-простому, эта директива используется, если у вас есть obj файл, скомпилированный в С++ и вы хотите оттуда использовать функции и переменные.
Edit:
Без обид конечно. Я так и не понял чем вам не угодил копи паст из поиска.

Последний раз редактировалось mihali4; 10.02.2010 в 03:20.
BOBAH13 вне форума Ответить с цитированием
Старый 09.02.2010, 21:19   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Найду подробное объяснение в другом месте.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось mihali4; 10.02.2010 в 03:19.
Alex Cones вне форума Ответить с цитированием
Старый 09.02.2010, 21:53   #6
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Это объявление констант такое. К примеру:
Код:
 {$EXTERNALSYM CF_TEXT}
  CF_TEXT = 1;
Теперь как написал BOBAH13 мы можем использовать функции и переменные из модуля obj, что обычными способами нельзя. Лично я думаю, что теперь все будет понятно
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 09.02.2010, 23:04   #7
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Всё, разобрался. Если в опциях компоновщика выбрать Generate C++ object files и Generate header files, то символы, отмеченные директивой $EXTERNALSYM, в хидеры не попадут. $HPPEMIT выполняет прямо противоположную функцию.
А линковка объектных файлов к дельфовскому проекту тут вообще не при чём
пыщь

Последний раз редактировалось JTG; 09.02.2010 в 23:21.
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
использование директив условной компиляции Ferza Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 24.06.2009 12:21
не понятен смысл функции *.getTime() IQDDD JavaScript, Ajax 4 23.06.2009 19:03
В чем смысл жизни? NNN Свободное общение 76 14.07.2008 21:16