Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE3

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Открыть новую тему     Написать ответ в эту тему

AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А под 64 в Билдере OBJ получить нельзя.
Проект компилируется без проблем, вот только не работает.  
ну на выходе у билдера 64 линуксовые объектники. *.o  а не *.obj.  вроде в elf формате. интересно, может ли дельфи линкер понимать новый формат билдера?
 

Всего записей: 794 | Зарегистр. 24-04-2008 | Отправлено: 17:47 11-01-2013
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Blind
http://theroadtodelphi.wordpress.com/delphi-ide-theme-editor/
 
AlekXL
Так IDispatch вроде как раз и реализует подобие RTTI. Что касается платформо-зависимости, то интерфейсы это просто соглашение о вызовах, бинарный интерфейс. Он реализуется компилятором, и от платформы не зависит. А вот полноценный COM - это уже другое дело, вряд ли он есть где то кроме винды. Хотя даже на винде он используется не всегда: http://www.gunsmoker.ru/2011/12/delphi.html

Всего записей: 2323 | Зарегистр. 24-05-2007 | Отправлено: 18:22 11-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Делфи использует и понимает только OMF

в x86
но вроде бы нет 64-битного OMF OBJ и более того по слухам в dcc64 есть выдранные дизассемблером куски из VC++
 
Добавлено:

Цитата:
Можно ли экспортировать/импортировать цветовые схемы?

http://stackoverflow.com/questions/5248563
 
Добавлено:

Цитата:
1) есть ли  межъязыковые интефейсы в unix-подобных(Мак, Линь) и  Андроид системах?

 
Android - там все через Яву (Дальвик) делается - так, что скорее всего вопросбудет какие в языках связки с дальвиком.
 
В остальных... Есть, но весьма разные. В основном к какой библиотеке за основу привяжешься.
 
Например у многих языков есть "мосты" к основным C++ библиотекам - помните Kylix и Delphi CLX ?
http://ru.wikipedia.org/wiki/Qt
http://ru.wikipedia.org/wiki/GLib
 
Например Mozilla - http://ru.wikipedia.org/wiki/XPCOM
 
Например CORBA, одна реализаций была SOM/DSOM многоплатформная еще до COM
http://ru.wikipedia.org/wiki/CORBA
http://ru.wikipedia.org/wiki/Bonobo_(GNOME)
http://ru.wikipedia.org/wiki/KParts
 
А вообще это взя зависит от маршализации/сериализации, когда вместо вызова метода передается сетевой пакет "вызвать такой-то метод".  
http://ru.wikipedia.org/wiki/Remote_Procedure_Call
 
mORMot вроде реализует JSON-RPC для Delphi 7 и FreePascal...
 
Последняя мода на Юниксах http://ru.wikipedia.org/wiki/D-Bus, а в истории много предыдущих примеров.
 
Выбирай :-D
 
Добавлено:

Цитата:
при наличии исходников на С и Delphi не нужно будет ничего патчить в объектниках.

Неужели не проще взять несколько других библиотек и проверить работают ли они в xe2 x64 с нужными тебе файлами ?
Несколько библиотек я уже называл
 
еще парочка
http://blog.synopse.info/post/2010/03/20/GIF%2C-TIF%2C-PNG-and-JPG-pictures-TGraphic-read/write-via-GDI
http://blog.synopse.info/post/2010/03/24/Fast-JPEG-decoder-using-SSE/SSE2-version-1.2
 
 

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 19:38 11-01-2013 | Исправлено: Arioch1, 20:03 11-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Неужели не проще взять несколько других библиотек и проверить работают ли они в xe2 x64 с нужными тебе файлами ?

Я исходил из того, что кровь из носу нужно оставить эту библиотеку. А на сколько это в действительности принципиально, пусть автор вопроса решает

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 21:11 11-01-2013
DeathMAD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
но вроде бы нет 64-битного OMF OBJ и более того по слухам в dcc64 есть выдранные дизассемблером куски из VC++

 
А вот про это можно поподробнее? А то это как-то...

Всего записей: 114 | Зарегистр. 13-10-2004 | Отправлено: 21:12 11-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А вот про это можно поподробнее?

http://www.codeproject.com/Articles/264103/Using-COFF-C-object-files-with-Delphi-X2 Про куски ничего, но зато по теме использования COFF объектников.

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 22:38 11-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
во время ругани по поводу XE3 всплывала инсайдерская инфа, а уж настоящая или поддельная - поди разбери
 
но если инсталлятор они пиратить могут - то почему копилятор нет ?
тем более, что в принципе обратная разработка ещё не пиратство.
впрочем, инсайдер говорил, что там именно куски ассемблерные, которые никто не понимает и на Я.В.У. переписать не можут.

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 09:03 12-01-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Про куски ничего, но зато по теме использования COFF объектников.
об этом упоминал мистер Хейтер.
Может, и сам сочинил эту клюкву. В любом случае, даже он назвал эту инфу ГОЛОСЛОВНЫМ УТВЕРЖДЕНИЕМ.
 
--
у меня проблема с xe3 -строки в отладчике (watch, хинты) отображаются в C++ стиле, да еще и обрезанными..

Всего записей: 794 | Зарегистр. 24-04-2008 | Отправлено: 12:41 12-01-2013
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробую сейчас в ветке по "С" поспрашать. Скорее всего придётся (если получится) изменять исходники самих OBJ. Может там можно указать, что тамошний аналог "Pointer" в 64 битах должен быть равен 8...

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 13:28 12-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
об этом упоминал мистер Хейтер.

у него в блогах инсайдер тоже вылезал. везде его потихоньку тёрли, бо судиться с Эмбой не хотелось никому. а в целом инсайдер звучал разумно по разным вопросам. что конечно не гаранттия достоверности. но ведь и скан паспорта у инсайдера не спросишь.
 
утверждение более чем голословное, и если бы не история с InstallAware я бы посмеялся. А так... даже и не знаю.
 
Могли потом Майкрософтовцы не пустить Дельфи в WinRT из-за обиды ? хз... Вряд ли, конечно.
 
Кста, о Майкрософте. Интересное описание внутреннего соперничества и обид http://hal2020.com/2012/12/22/putting-expression-studios-demise-in-perspective/ + комменты

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 13:55 12-01-2013 | Исправлено: Arioch1, 13:58 12-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При попытке прилинковать к проекту на Делфи obj файлов скомпилированных под VS 2010 вылезает куча неразрешенных зависимостей. И если с зависимостями на WinAPI понятно что делать, то что делать с зависимостями от сишных операторов new/delete? Т.е. вот такая ошибка:

Код:
[dcc32 Error] DetourUsing.dpr(78): E2065 Unsatisfied forward or external declaration: '??3@YAXPAX@Z'

Может кто знает, как с этим бороться?

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 20:09 12-01-2013 | Исправлено: HeMet, 20:10 12-01-2013
DeathMAD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
extern "С" ?

Всего записей: 114 | Зарегистр. 13-10-2004 | Отправлено: 20:49 12-01-2013
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeMet
Вопрос:

Цитата:
dcc32 Error

Цитата:
скомпилированных под VS 2010

как это связано? Под 32 OBJ должны быть сделаны в Билдере, а под 64 в VS.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 20:57 12-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
extern "С" ?

Так можно заворачивать те функции, которые хочется использовать в коде на Делфи, а я говорю про случай, когда где-то в сишном коде используется что-то типа
Код:
int *ia = new int[5]
. По идее код оператора new содержится в msvcrt.dll, но как об этом сказать компоновщику?
 
Aleksandr N
Начиная с XE2 оба компилятора и 32bit и 64bit научились понимать COFF формат, в котором генерит объектинки VS, поэтому можно и без Билдера. Но если использовать Билдер, то в из плюсов можно отметить то, что все зависимости на WinAPI разрешаются автоматически, а из минусов то, что помимо тех же зависимостей от new/delete, но с другими именами Билдер ещё добавляет зависимостей от обработки исключений.

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 21:25 12-01-2013
DeathMAD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
    operator_new := GetProcAddress(msvcrModule, '??2@YAPAXI@Z');
      operator_delete := GetProcAddress(msvcrModule, '??3@YAXPAX@Z');
 

 
Ээээ. А если их импортировать из dll и сделать cdecl функции в Delphi с этими милыми именами, чтобы компоновщик их нашёл?
 
 

Всего записей: 114 | Зарегистр. 13-10-2004 | Отправлено: 21:34 12-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DeathMAD
Компилятор Делфей изругается на такие имена, уже пробовал.

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 21:55 12-01-2013
DeathMAD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А на C++ написать такой модуль и в obj его превратить?  
 
И ещё вот такое собирается вполне
 

Код:
library Project44;
 
 
 
function Test: Pointer; cdecl;
begin
  Result := nil;
end;
 
exports
  Test name '??2@YAPAXI@Z';
 
begin
end.
 

Всего записей: 114 | Зарегистр. 13-10-2004 | Отправлено: 22:05 12-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот блин.... люди избалованные Паскалем.
 
Ну соберете вы такое - и что будет ? ведь вы не знаете что и как должна эта функция делать.
 
Ищите OBJ и LIB файлы, вам нужна RunTime Library Visual C++
А она, зарpраза, тоже разная бывает. Это не Дельфи с BPL, там на разные настройки компилятора разные OBJи
 
C:\RAD Studio\9.0\lib\win32\release\cp32mt.lib
C:\RAD Studio\9.0\lib\win32\release\cp32mti.lib
C:\RAD Studio\9.0\lib\win32\release\cw32.lib
C:\RAD Studio\9.0\lib\win32\release\cw32i.lib
C:\RAD Studio\9.0\lib\win32\release\cw32mt.lib
C:\RAD Studio\9.0\lib\win32\release\cw32mti.lib
C:\RAD Studio\9.0\lib\win32\release\c0d32.obj
C:\RAD Studio\9.0\lib\win32\release\c0d32w.obj
C:\RAD Studio\9.0\lib\win32\release\c0d32x.obj
C:\RAD Studio\9.0\lib\win32\release\c0fmx32.obj
C:\RAD Studio\9.0\lib\win32\release\c0fmx32w.obj
C:\RAD Studio\9.0\lib\win32\release\c0pkg32.obj
C:\RAD Studio\9.0\lib\win32\release\c0pkg32w.obj
C:\RAD Studio\9.0\lib\win32\release\c0s32.obj
C:\RAD Studio\9.0\lib\win32\release\c0w32.obj
C:\RAD Studio\9.0\lib\win32\release\c0w32w.obj
C:\RAD Studio\9.0\lib\win32\release\c0x32.obj
C:\RAD Studio\9.0\lib\win32\release\c0x32w.obj
 
 
И вот у вас такая же хрень с Visual C++ - ему тоже нужны разные файлы
 
Добавлено:
Но даже если вы их найдете и правильно добавите, те что надо, все равно может не хватить.
 
Потому что библиотека Delphi/Билдера и библиотека RTL будут у Windows требовать одни и те же ресурсы.
Память под heap, управление исключениями, системные ошибки какие-нибудь типа отладки или AV....
 
А ведь в Win64 исключения совсем по другому сделаны чем в win32
 
Смогут ли сжиться две RTL, если каждая будет считать себя главной ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 22:36 12-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
Пробовал я проекту VS добавлять libcmt.lib и в настройках проекта ставил статическую линковку (/MT), но не помогло.
Собственно статья на MSDN: http://msdn.microsoft.com/en-us/library/abx4dbyh(v=vs.80).aspx

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 22:43 12-01-2013 | Исправлено: HeMet, 22:43 12-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
содержится в msvcrt.dll, но как об этом сказать компоновщику?

 
найти и линковать соответсвующий lib или obj файл.
 
сделай какой-нибудь exe в VC++ - а потом внимательно посмотри текстовые файлы для сборки.
Раньше он собирал через nmake и файлы *.mak
 
Сейчас VC++ собирает как и Дельфи через MSBUILD
В Дельфи файл для сборки *.dproj
Как он называется в VC++ не знаю, но там тоже должен быть XML-файл, который говорит, что и когда запускать. И в нем так или иначе говорится с какими библиотеками сам VC++ линкует свои объектники

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 22:46 12-01-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru