Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Спасибо за информацию по "Name mangling". Сейчас "графическая библиотека QT к SPF 4.20" переросла в полноценную графическую библиотеку QtE-4. К сожалению работы по поддержке форт варианта QtE пришлось остановить. Зато активно развивается QtE для языка программирования D.. С применением этой библиотеки осуществлён крупный проект, кроссплатформенного приложения, для научно учебного центра (НУЦ) в г.Москва. На текущий момент в QtE около 400 функций из Qt 4.8
Спасибо за информацию по "Name mangling".
Сейчас "графическая библиотека QT к SPF 4.20" переросла в полноценную графическую библиотеку [url=http://qte.ucoz.ru]QtE-4.[/url] К сожалению работы по поддержке форт варианта QtE пришлось остановить. Зато активно развивается QtE для языка программирования [url=http://dlang.org]D.[/url]. С применением этой библиотеки осуществлён крупный проект, кроссплатформенного приложения, для научно учебного центра (НУЦ) в г.Москва.
На текущий момент в QtE около 400 функций из Qt 4.8
|
|
|
|
Добавлено: Сб сен 05, 2015 19:40 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
mgw писал(а): Код: Library@ QtGui 0 THIS-CDECL-Win-VC-Call" ? show@QWidget@@QAEXXZ" ПокажиОкно // ПокажиОкно
Обратите внимание, на искажение имён (?show@QWidget@@QAEXXZ) вносимое компилятором С++. В этом имени зашифрован тип вызова и кол параметров. Для разных компиляторов может быть различным. Есть статья по Calling conventions > Раздел "8 Name mangling" В статье есть подробная таблица с кодами для разных компиляторов следущего вида: Код: Table 9. Type codes |-------------------------------------------------------------------| | type | Microsoft | Borland | Watcom | Gnu2 | Gnu3-4 | Gnu4 | | | ABI v.3 | ABI v.4+ | |-------------------------------------------------------------------| | void | X | v | v | v | v | v | | bool | _N | 4bool | q | b | b | b | | char | D | c | a | c | c | c | и т. д.
Так же есть коды для сложных типов (как классы). Имея подобную информацию можно создать библиотеку для конвертирования имен вида ?show@QWidget@@QAEXXZ в адекватные исходные имена C++. Calling conventions for different C++ compilers and operating systemsBy Agner Fog. Technical University of Denmark. Copyright © 2004 - 2014. Last updated 2014-08-07. Contents1 Introduction . 3 2 The need for standardization. 5 3 Data representation. 6 4 Data alignment 8 5 Stack alignment. 9 6 Register usage 10 6.1 Can floating point registers be used in 64-bit Windows? . 13 6.2 YMM vector registers 14 6.3 ZMM vector registers 15 6.4 Register usage in kernel code. 15 7 Function calling conventions . 16 7.1 Passing and returning objects. 20 7.2 Passing and returning SIMD types 23 8 Name mangling . 25 8.1 Microsoft name mangling 29 8.2 Borland name mangling 34 8.3 Watcom name mangling . 35 8.4 Gnu2 name mangling 36 8.5 Gnu3-4 name mangling 38 8.6 Intel name mangling for Windows . 40 8.7 Intel name mangling for Linux . 41 8.8 Symantec and Digital Mars name mangling 41 8.9 Codeplay name mangling . 41 8.10 Other compilers 42 8.11 Turning off name mangling with extern "C" . 42 8.12 Conclusion 43 9 Exception handling and stack unwinding . 43 10 Initialization and termination functions . 44 11 Virtual tables and runtime type identification 44 12 Communal data. 45 13 Memory models. 45 13.1 16-bit memory models 45 13.2 32-bit memory models 46 13.3 64-bit memory models in Windows . 46 13.4 64-bit memory models in Linux and BSD 46 13.5 64-bit memory models in Intel-based Mac (Darwin) 46 14 Relocation of executable code. 47 14.1 Import tables. 49 15 Object file formats . 49 15.1 OMF format. 49 15.2 COFF format. 50 15.3 ELF format 51 15.4 Mach-O format 51 15.5 a.out format. 52 15.6 Comparison of object file formats 52 15.7 Conversion between object file formats. 52 15.8 Intermediate file formats . 52 16 Debug information. 53 17 Data endian-ness 53 18 Predefined macros 53 19 Available C++ Compilers . 55 19.1 Microsoft. 55 19.2 Borland . 55 19.3 Watcom 55 19.4 Gnu. 55 19.5 Digital Mars. 55 19.6 Codeplay 55 19.7 Intel. 55 20 Literature. 56 20.1 ABI's for Unix, Linux, BSD and Mac OS X (Intel-based) 56 20.2 ABIs for Windows 56 20.3 Object file format specifications. 57 21 Copyright notice 57 22 Acknowledgments . 57 Ссылки:
[quote="mgw"][code] Library@ QtGui 0 THIS-CDECL-Win-VC-Call" ? show@QWidget@@QAEXXZ" ПокажиОкно // ПокажиОкно [/code] Обратите внимание, на искажение имён (?show@QWidget@@QAEXXZ) вносимое компилятором С++. В этом имени зашифрован тип вызова и кол параметров. Для разных компиляторов может быть различным. [/quote] Есть статья по Calling conventions > Раздел "8 Name mangling" В статье есть подробная таблица с кодами для разных компиляторов следущего вида: [code]Table 9. Type codes |-------------------------------------------------------------------| | type | Microsoft | Borland | Watcom | Gnu2 | Gnu3-4 | Gnu4 | | | ABI v.3 | ABI v.4+ | |-------------------------------------------------------------------| | void | X | v | v | v | v | v | | bool | _N | 4bool | q | b | b | b | | char | D | c | a | c | c | c | и т. д. [/code] Так же есть коды для сложных типов (как классы). Имея подобную информацию можно создать библиотеку для конвертирования имен вида ?show@QWidget@@QAEXXZ в адекватные исходные имена C++.
[b]Calling conventions for different C++ compilers and operating systems[/b] By Agner Fog. Technical University of Denmark. Copyright © 2004 - 2014. Last updated 2014-08-07.
[b]Contents[/b] [list]1 Introduction . 3 2 The need for standardization. 5 3 Data representation. 6 4 Data alignment 8 5 Stack alignment. 9 6 Register usage 10 6.1 Can floating point registers be used in 64-bit Windows? . 13 6.2 YMM vector registers 14 6.3 ZMM vector registers 15 6.4 Register usage in kernel code. 15 7 Function calling conventions . 16 7.1 Passing and returning objects. 20 7.2 Passing and returning SIMD types 23 8 Name mangling . 25 8.1 Microsoft name mangling 29 8.2 Borland name mangling 34 8.3 Watcom name mangling . 35 8.4 Gnu2 name mangling 36 8.5 Gnu3-4 name mangling 38 8.6 Intel name mangling for Windows . 40 8.7 Intel name mangling for Linux . 41 8.8 Symantec and Digital Mars name mangling 41 8.9 Codeplay name mangling . 41 8.10 Other compilers 42 8.11 Turning off name mangling with extern "C" . 42 8.12 Conclusion 43 9 Exception handling and stack unwinding . 43 10 Initialization and termination functions . 44 11 Virtual tables and runtime type identification 44 12 Communal data. 45 13 Memory models. 45 13.1 16-bit memory models 45 13.2 32-bit memory models 46 13.3 64-bit memory models in Windows . 46 13.4 64-bit memory models in Linux and BSD 46 13.5 64-bit memory models in Intel-based Mac (Darwin) 46 14 Relocation of executable code. 47 14.1 Import tables. 49 15 Object file formats . 49 15.1 OMF format. 49 15.2 COFF format. 50 15.3 ELF format 51 15.4 Mach-O format 51 15.5 a.out format. 52 15.6 Comparison of object file formats 52 15.7 Conversion between object file formats. 52 15.8 Intermediate file formats . 52 16 Debug information. 53 17 Data endian-ness 53 18 Predefined macros 53 19 Available C++ Compilers . 55 19.1 Microsoft. 55 19.2 Borland . 55 19.3 Watcom 55 19.4 Gnu. 55 19.5 Digital Mars. 55 19.6 Codeplay 55 19.7 Intel. 55 20 Literature. 56 20.1 ABI's for Unix, Linux, BSD and Mac OS X (Intel-based) 56 20.2 ABIs for Windows 56 20.3 Object file format specifications. 57 21 Copyright notice 57 22 Acknowledgments . 57[/list]
Ссылки: [list]Формат PDF: [url=http://agner.org/optimize/calling_conventions.pdf][ссылка][/url] Ресурсы для оптимизации: [url=http://agner.org/optimize/][ссылка][/url][/list]
|
|
|
|
Добавлено: Сб сен 05, 2015 06:47 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Спасибо, KPG. Я наконец то победил Qt. Правда не без помощи Lazarus. Именно там нашлось решение. Сейчас я научился распределять и уничтожать память объектов Qt, и разобрался с QApplication. Вполне реально написать полноценную объвязку Qt для SPF.
Спасибо, KPG. Я наконец то победил Qt. Правда не без помощи Lazarus. Именно там нашлось решение. Сейчас я научился распределять и уничтожать память объектов Qt, и разобрался с QApplication. Вполне реально написать полноценную объвязку Qt для SPF.
|
|
|
|
Добавлено: Пт фев 21, 2014 14:42 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
mgw писал(а): Помогите подключить SPF (именно его) в качестве DLL (so) к выполняемому EXE.
Вариант сборки? (для Windows, но не сильно правильный) Поиск по spf.dll на форумеmgw писал(а): Подскажите, где есть наработки на эту тему. Основная цель, как бы остановить работающее приложение и переключится в SPF для исследования внутренностей работающего приложения. Этакий встроенный отладчик.
Точно не подскажу, но наверное можно использовать возможности , в частности Fasm по созданию варианта Fasm+SPFort4 в виде DLL и его расширению. (для "многих" программ - языков программирования Fasm является back-end при создания исполняемого файла, и в частности для HLA ассемблера) Михаил встраивал SPF4 в FASM для его исследования. архив такого решения для Windows системы.В тесте извлекается Map файл из данных Fasm при компиляции, А также вызвав ABORT в скрипте можно вызвать консоль SPF4 В данном варианте можно средствами SPF4 заменить некоторый родной функционал FASM при сохранении совместимости компилируемого асм кода. и при этом существует возможность задействовать возможности SPF4 P.S. Ещё один проект с дизасемблированием "используемых asm кодов слов скрипта SPF4" для встраивания SPF Форт кода в Delphi HiAsm (с форума HiAsm) Disasm может тоже на что сгодится:) Участник форума flint2 делал и SPF.dll P.P.S. SPF4 in QEMU (by Mihail) (100Mb c MinGW) Можно на уровне ядра СPU отладку сделать и внедрить, по возможности, в последние версии QEMU. (консоль Форт системы также в наличии)
[quote="mgw"] Помогите подключить SPF (именно его) в качестве DLL (so) к выполняемому EXE. [/quote] Вариант сборки? (для Windows, но не сильно правильный) [url=http://fforum.winglion.ru/viewtopic.php?f=18&t=2834&start=0]Поиск по spf.dll на форуме[/url]
[quote="mgw"] Подскажите, где есть наработки на эту тему. Основная цель, как бы остановить работающее приложение и переключится в SPF для исследования внутренностей работающего приложения. Этакий встроенный отладчик. [/quote] Точно не подскажу, но наверное можно использовать возможности , в частности Fasm по созданию варианта Fasm+SPFort4 в виде DLL и его расширению. (для "многих" программ - языков программирования Fasm является back-end при создания исполняемого файла, и в частности для HLA ассемблера)
Михаил встраивал SPF4 в FASM для его исследования. [url=http://webfile.ru/5ae3a730564e9249ed5311b876e578cb]архив такого решения для Windows системы.[/url]
В тесте извлекается Map файл из данных Fasm при компиляции, А также вызвав ABORT в скрипте можно вызвать консоль SPF4 В данном варианте можно средствами SPF4 заменить некоторый родной функционал FASM при сохранении совместимости компилируемого асм кода. и при этом существует возможность задействовать возможности SPF4
P.S. Ещё один проект с дизасемблированием "используемых asm кодов слов скрипта SPF4" для встраивания SPF Форт кода в Delphi HiAsm (с форума HiAsm) [url=http://webfile.ru/7beb2c6af89db771a9fccdb03020a4de]Disasm[/url] может тоже на что сгодится:) Участник форума flint2 делал и SPF.dll
P.P.S. [url=http://webfile.ru/3956617d9dd22d497ef614849361edd8]SPF4 in QEMU[/url] (by Mihail) (100Mb c MinGW) Можно на уровне ядра СPU отладку сделать :) и внедрить, по возможности, в последние версии QEMU. (консоль Форт системы также в наличии)
|
|
|
|
Добавлено: Вт фев 11, 2014 17:25 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Уважаемые форумчане, нужна ваша помощь! Помогите подключить SPF (именно его) в качестве DLL (so) к выполняемому EXE. Подскажите, где есть наработки на эту тему. Основная цель, как бы остановить работающее приложение и переключится в SPF для исследования внутренностей работающего приложения. Этакий встроенный отладчик. P.S. http://qte.ucoz.ru/load/qte_ot_060214_dlja_d_i_spf_4_20_windows_i_linux_32_64_ne_proverjal/1-1-0-9 - содержит QtE.f для работы SPF с Qt
Уважаемые форумчане, нужна ваша помощь! Помогите подключить SPF (именно его) в качестве DLL (so) к выполняемому EXE. Подскажите, где есть наработки на эту тему. Основная цель, как бы остановить работающее приложение и переключится в SPF для исследования внутренностей работающего приложения. Этакий встроенный отладчик.
P.S. [url]http://qte.ucoz.ru/load/qte_ot_060214_dlja_d_i_spf_4_20_windows_i_linux_32_64_ne_proverjal/1-1-0-9[/url] - содержит QtE.f для работы SPF с Qt
|
|
|
|
Добавлено: Вт фев 11, 2014 16:03 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Уважаемые форумчане, нужна ваша помощь! Помогите подключить SPF (именно его) в качестве DLL (so) к выполняемому EXE. Подскажите, где есть наработки на эту тему. Основная цель, как бы остановить работающее приложение и переключится в SPF для исследования внутренностей работающего приложения. Этакий встроенный отладчик.
Уважаемые форумчане, нужна ваша помощь! Помогите подключить SPF (именно его) в качестве DLL (so) к выполняемому EXE. Подскажите, где есть наработки на эту тему. Основная цель, как бы остановить работающее приложение и переключится в SPF для исследования внутренностей работающего приложения. Этакий встроенный отладчик.
|
|
|
|
Добавлено: Пт янв 24, 2014 22:48 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
mgw писал(а): Колибри для меня слишком сложна. На уровне использования SPF, наверное, не так сложно. Для запуска Kolibri программ в XP KlbrinWin KlbrinWin_src компилируется Fasm Тема обсуждения Forth под Kolibri Os Но для использования всего API Колибри существующий вариант(ы), наверное, потребуется расширить. mgw писал(а): Мне больше интересна интеграция форта (SPF желательно) в другие приложения. Скажем использование SPF в качестве внутреннего "исследователя" (вместо отладчика например) конечного приложения на D и его (приложения) дальнейшего модификации. Наверное надо SPF цеплять как DLL ку. У Михаила для примерно таких целей были "имплантации" Форта в разные программы и в частности в качестве "исследователя" в QEMU - это возможно более универсальный вариант.
[quote="mgw"]Колибри для меня слишком сложна. [/quote] На уровне использования SPF, наверное, не так сложно. Для запуска Kolibri программ в XP [url=http://board.kolibrios.org/download/file.php?id=5680]KlbrinWin[/url] [url=http://board.kolibrios.org/download/file.php?id=3475]KlbrinWin_src[/url] компилируется Fasm [url=http://board.kolibrios.org/viewtopic.php?f=45&t=395]Тема обсуждения Forth под Kolibri Os[/url] Но для использования всего API Колибри существующий вариант(ы), наверное, потребуется расширить.
[quote="mgw"] Мне больше интересна интеграция форта (SPF желательно) в другие приложения. Скажем использование SPF в качестве внутреннего "исследователя" (вместо отладчика например) конечного приложения на D и его (приложения) дальнейшего модификации. Наверное надо SPF цеплять как DLL ку.[/quote] У Михаила для примерно таких целей были "имплантации" Форта в разные программы и в частности в качестве "исследователя" в QEMU - это возможно более универсальный вариант.
|
|
|
|
Добавлено: Ср янв 08, 2014 23:40 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Колибри для меня слишком сложна. Мне больше интересна интеграция форта (SPF желательно) в другие приложения. Скажем использование SPF в качестве внутреннего "исследователя" (вместо отладчика например) конечного приложения на D и его (приложения) дальнейшего модификации. Наверное надо SPF цеплять как DLL ку.
Колибри для меня слишком сложна. Мне больше интересна интеграция форта (SPF желательно) в другие приложения. Скажем использование SPF в качестве внутреннего "исследователя" (вместо отладчика например) конечного приложения на D и его (приложения) дальнейшего модификации. Наверное надо SPF цеплять как DLL ку.
|
|
|
|
Добавлено: Ср янв 08, 2014 21:35 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
KPG писал(а): Ещё немного "допиливания" и был бы полноценный форк Колибри на базисе Форт. Вытащить из Колибри что-то полезное для работы в дугой системе - задача почти не реальная. На первом этапе лучше заставить форт-систему сгенерировать тот-же бинарник, что генерируется FARом. Принципиальных проблем нет. Вопрос в объеме. Если просто перевести на форт-ассемблер в одиночку, это месяцы (если не годы) непрерывной работы. Следует разработать специальный дизассемблер или сделать форт-ассемблер максимально близким к FARу.
[quote="KPG"] Ещё немного "допиливания" и был бы полноценный форк Колибри на базисе Форт.[/quote] Вытащить из Колибри что-то полезное для работы в дугой системе - задача почти не реальная. На первом этапе лучше заставить форт-систему сгенерировать тот-же бинарник, что генерируется FARом. Принципиальных проблем нет. Вопрос в объеме. Если просто перевести на форт-ассемблер в одиночку, это месяцы (если не годы) непрерывной работы. Следует разработать специальный дизассемблер или сделать форт-ассемблер максимально близким к FARу.
|
|
|
|
Добавлено: Ср янв 08, 2014 21:14 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
mgw писал(а): Когда то давно, я заинтересовался вопросом «Можно ли из Forth использовать тонны готовых библиотек валяющихся на компьютере в виде DLL, при этом не используя компилятор С++». К сожалению ответ — НЕТ.
И какой процент "неправильных" DLL? Много же и правильных. Кроме того некоторые DLL сделаны с ипользованием DCOM/OLE/ActiveX технологии (достаточно популярной в определённых "обстоятельствах" для Windows) и другие современные "инкарнации" P.S. Для использования, например, Java можно из SPF4 использовать JVM.DLL или уже нет? (учтя сигнатуры классов). Можно "завести" список DLL с которыми уже опробована возможность их использования в тех или иных Форт-системах. В "некоторых" случаях можно порекомендовать, например при создании пользовательского графического интерфейса, выбросить "технологические" DLL и отрисовать интерфейс непосредственно в графическую память системы. (много хороших есть примеров, например Reda4 Forth like система для Windows и др. варианты) Сейчас мне больше "импонирует" данный вариант "экстремального" программирования. (Делать приложение, например, используя возможности графического интерфейса Koлибри ОС, а запускать в рамках ХP или других систем через симулятор (сделан уже) или виртуальные машины или в рамках самой операционной системы) Думаю "обкатать" данный вариант. К тому же для Колибри ОС уже присутствует вариант SPF4 Форт системы. (стараниями вездесущего Михаила:) Ещё немного "допиливания" и был бы полноценный форк Колибри на базисе Форт. (сейчас только демо-прототип)
[quote="mgw"]Когда то давно, я заинтересовался вопросом «Можно ли из Forth использовать тонны готовых библиотек валяющихся на компьютере в виде DLL, при этом не используя компилятор С++». К сожалению ответ — НЕТ. [/quote] И какой процент "неправильных" DLL? Много же и правильных. Кроме того некоторые DLL сделаны с ипользованием DCOM/OLE/ActiveX технологии (достаточно популярной в определённых "обстоятельствах" для Windows) и другие современные "инкарнации"
P.S. Для использования, например, Java можно из SPF4 использовать JVM.DLL или уже нет? (учтя сигнатуры классов). Можно "завести" список DLL с которыми уже опробована возможность их использования в тех или иных Форт-системах.
В "некоторых" случаях можно порекомендовать, например при создании пользовательского графического интерфейса, выбросить "технологические" DLL и отрисовать интерфейс непосредственно в графическую память системы. (много хороших есть примеров, например Reda4 Forth like система для Windows и др. варианты) Сейчас мне больше "импонирует" данный вариант "экстремального" программирования. (Делать приложение, например, используя возможности графического интерфейса Koлибри ОС, а запускать в рамках ХP или других систем через симулятор (сделан уже) или виртуальные машины или в рамках самой операционной системы) Думаю "обкатать" данный вариант. К тому же для Колибри ОС уже присутствует вариант SPF4 Форт системы. (стараниями вездесущего Михаила:) Ещё немного "допиливания" и был бы полноценный форк Колибри на базисе Форт. (сейчас только демо-прототип)
|
|
|
|
Добавлено: Пн янв 06, 2014 14:12 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Когда то давно, я заинтересовался вопросом «Можно ли из Forth использовать тонны готовых библиотек валяющихся на компьютере в виде DLL, при этом не используя компилятор С++». К сожалению ответ — НЕТ. Если библиотеки написаны в стиле классического С, то проблем нет. Там лежит просто набор функций с «прозрачными» именами, которые легко использовать. Однако большинство современных представляют собой С++ библиотеки. Первая трудность в них — это искажение имен. В них добавлен список и типы аргументов, что делает их слабо понятными для человека. Сделано это для того, что бы С++ мог иметь одинаковое имя функции с разными параметрами. Существует множество утилит декодирующих имена и аргументы в нормальный вид, что фактически снимает эту проблему. Конструкторы и деструкторы, если они имеются в DLL могут быть корректно вызваны и работают правильно. Таким образом в Forth можно построить дерево классов С++. Но, как выяснилось в погоне за «эффективностью» часть функций определена в виде «inline» функций. А так как «inline» - это псевдофункция, то её код не представлен в DLL. Получается, что часть кода в DLL С++ c «inline» функциями отсутствует физически. Без компилятора С++ и исходных текстов воспроизвести эту утерянную часть нет возможности. По правильному, нужно к каждой С++ библиотеке прикладывать «DLLку совместимости», в которой определить явно все «inline» функции, размеры объектов и прочую недостающую информацию в основных DLL. Жаль, что этого правила нет, это значительно облегчило бы использование С++ библиотек из других языков.
Когда то давно, я заинтересовался вопросом «Можно ли из Forth использовать тонны готовых библиотек валяющихся на компьютере в виде DLL, при этом не используя компилятор С++». К сожалению ответ — НЕТ. Если библиотеки написаны в стиле классического С, то проблем нет. Там лежит просто набор функций с «прозрачными» именами, которые легко использовать. Однако большинство современных представляют собой С++ библиотеки. Первая трудность в них — это искажение имен. В них добавлен список и типы аргументов, что делает их слабо понятными для человека. Сделано это для того, что бы С++ мог иметь одинаковое имя функции с разными параметрами. Существует множество утилит декодирующих имена и аргументы в нормальный вид, что фактически снимает эту проблему. Конструкторы и деструкторы, если они имеются в DLL могут быть корректно вызваны и работают правильно. Таким образом в Forth можно построить дерево классов С++. Но, как выяснилось в погоне за «эффективностью» часть функций определена в виде «inline» функций. А так как «inline» - это псевдофункция, то её код не представлен в DLL. Получается, что часть кода в DLL С++ c «inline» функциями отсутствует физически. Без компилятора С++ и исходных текстов воспроизвести эту утерянную часть нет возможности. По правильному, нужно к каждой С++ библиотеке прикладывать «DLLку совместимости», в которой определить явно все «inline» функции, размеры объектов и прочую недостающую информацию в основных DLL. Жаль, что этого правила нет, это значительно облегчило бы использование С++ библиотек из других языков.
|
|
|
|
Добавлено: Пн янв 06, 2014 11:33 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Из QtE_141013 t13 и t12 запустились Из последнего архива ничего не запускается: Код: Внимание! Error find function: QT_QCheckBox
Из QtE_141013 t13 и t12 запустились Из последнего архива ничего не запускается: [code]Внимание! Error find function: QT_QCheckBox[/code]
|
|
|
|
Добавлено: Сб ноя 23, 2013 01:52 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Отлично! Главное есть QtE.so — это мостик между QtE.f и Qt. Специально для Linux подготовил архив. В нём минимально необходимый набор. Кстати, файлы QtE.so.1.0.0 и spf4 из архива замени своими. Они привязаны к конкретной архитектуре. С точки зрения теории понятно, как работать с Qt из любого диалекта Forth Файл для скачивания: http://yadi.sk/d/9BmBto_rD8KTG
Отлично! Главное есть QtE.so — это мостик между QtE.f и Qt. Специально для Linux подготовил архив. В нём минимально необходимый набор. Кстати, файлы QtE.so.1.0.0 и spf4 из архива замени своими. Они привязаны к конкретной архитектуре. С точки зрения теории понятно, как работать с Qt из любого диалекта Forth
Файл для скачивания: http://yadi.sk/d/9BmBto_rD8KTG
|
|
|
|
Добавлено: Пт ноя 22, 2013 15:11 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Скачал, скомпилировал. Правда, пришлось подправить пути к qt4: в ubuntu 13.10 файлы include лежат в /usr/include/qt4. Получил QtE.so.1.0.0 При попытке запуска t13.f ошибка: Код: Exception #2 at: ~mgw/qte.f:251:30: if=L REQUIRE HYPE qtf/hype3.f // ^ -2003 WORD OR FILE NOT FOUND
Не хватает папки qtf.
Скачал, скомпилировал. Правда, пришлось подправить пути к qt4: в ubuntu 13.10 файлы include лежат в /usr/include/qt4. Получил QtE.so.1.0.0 При попытке запуска t13.f ошибка: [code]Exception #2 at: ~mgw/qte.f:251:30: if=L REQUIRE HYPE qtf/hype3.f // ^ -2003 WORD OR FILE NOT FOUND [/code] Не хватает папки qtf.
|
|
|
|
Добавлено: Пт ноя 22, 2013 01:51 |
|
|
|
|
|
Заголовок сообщения: |
Re: Подключение графической библиотеки QT к SPF 4.20 |
|
|
Отлично! Моя почта mgwl@mail.ru Если есть вопросы пиши на этот адрес или спрашивай в этой теме. Первая задача запустить QtE и примеры. Необходимо скачать QtE от 141013. ( для D и SPF-4-20 ) Windows и Linux 32 и 64 http://qte.ucoz.ru/. Скомпилировать библиотеку qte.so Попытаться запустить примеры.
Отлично! Моя почта mgwl@mail.ru Если есть вопросы пиши на этот адрес или спрашивай в этой теме. Первая задача запустить QtE и примеры. Необходимо скачать QtE от 141013. ( для D и SPF-4-20 ) Windows и Linux 32 и 64 http://qte.ucoz.ru/. Скомпилировать библиотеку qte.so Попытаться запустить примеры.
|
|
|
|
Добавлено: Пн ноя 18, 2013 18:56 |
|
|
|
|