Вверх ↑
Этот топик читают: Гость
Ответов: 1841
Рейтинг: 369
#226: 2015-06-12 16:13:10 ЛС | профиль | цитата
flint2 писал(а):
Т.е. если таскать за собой, предположим dll от QT, то получается избыточный код в виде незадействованных функций dll.

Именно так.
В случае Qt, это не минус, как бы это странным не казалось.
Раньше я тоже считал такой подход большим минусом.
карма: 1
0
Ответов: 2059
Рейтинг: 132
#227: 2015-06-12 16:25:12 ЛС | профиль | цитата
CriDos
С этого места поподробней.
Может я не с того места смотрю, или освещение у меня не так падает и не передаёт всей гаммы красок картины?

P.S.
Если QT рассматривать, как среду, то всё встаёт на свои места.
Но тогда... За то...
Подробней не надо. Всё понял.
карма: 6

0
Ответов: 1841
Рейтинг: 369
#228: 2015-06-12 18:04:19 ЛС | профиль | цитата
Во-первых, библиотеки устанавливаются единожды и в дальнейшем требуется обновлять только бинарник размером от ~17 кб.
Т.е. при расширении/обновлении функционала, не требуется докачивать дополнительные либы.

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

В-третьих, модульность даёт возможность создать биндинги к разным ЯП и значительно расширить возможности.

В-четвёртых, при сборке приложения не требуется каждый раз собирать кучу объектников (в Qt их очень много было бы) и легче/быстрее использовать прекомпилированные версии библиотек, и динамически их подключать.

В-пятых, кроссплатформенность.
Например в Linux принято устанавливать библиотеки (зависимости) из репозитория и в дальнейшем их используют все зависимые от этой библиотеки приложения (а не как в Windows, всё своё, тащу с собой ) .
В итоге, все приложения имеют очень маленький размер (от 17 кбайт).

Кстати, вот что за собой тянет explorer.exe:
ActionCenter.dll, 0x7feedba0000, 776 kB, Центр поддержки
ActionCenter.dll.mui, 0x22a0000, 24 kB, Центр поддержки
actxprxy.dll, 0x7feeeb80000, 952 kB, ActiveX Interface Marshaling Library
advapi32.dll, 0x7fefe1b0000, 876 kB, Расширенная библиотека API Windows 32
AltTab.dll, 0x7feedb20000, 64 kB, Windows Shell Alt Tab
api-ms-win-downlevel-advapi32-l1-1-0.dll, 0x7fefd3e0000, 20 kB, ApiSet Stub DLL
api-ms-win-downlevel-advapi32-l2-1-0.dll, 0x7fef90c0000, 16 kB, ApiSet Stub DLL
api-ms-win-downlevel-normaliz-l1-1-0.dll, 0x7fefd400000, 12 kB, ApiSet Stub DLL
api-ms-win-downlevel-ole32-l1-1-0.dll, 0x7fefd240000, 16 kB, ApiSet Stub DLL
api-ms-win-downlevel-shell32-l1-1-0.dll, 0x7feed610000, 16 kB, ApiSet Stub DLL
api-ms-win-downlevel-shlwapi-l1-1-0.dll, 0x7fefd070000, 16 kB, ApiSet Stub DLL
api-ms-win-downlevel-shlwapi-l2-1-0.dll, 0x7feeb290000, 16 kB, ApiSet Stub DLL
api-ms-win-downlevel-user32-l1-1-0.dll, 0x7fefd3f0000, 16 kB, ApiSet Stub DLL
api-ms-win-downlevel-version-l1-1-0.dll, 0x7fefd230000, 16 kB, ApiSet Stub DLL
apisetschema.dll, 0x7feff5c0000, 4 kB, ApiSet Schema DLL
apphelp.dll, 0x7fefce50000, 348 kB, Клиентская библиотека совместимости приложений
atl.dll, 0x7fefb690000, 100 kB, ATL Module for Windows XP (Unicode)
atl100.dll, 0x6f110000, 172 kB, ATL Module for Windows
AudioSes.dll, 0x7fef2940000, 316 kB, Сеанс обработки звука
authui.dll, 0x7fefbda0000, 1,87 MB, Интерфейс проверки подлинности
avrt.dll, 0x7fefb9b0000, 36 kB, Multimedia Realtime Runtime
batmeter.dll, 0x7feed250000, 744 kB, Battery Meter Helper DLL
bcrypt.dll, 0x7fefc9a0000, 136 kB, Windows Cryptographic Primitives Library
bcryptprimitives.dll, 0x7fefc490000, 304 kB, Windows Cryptographic Primitives Library
bthprops.cpl, 0x7feef440000, 724 kB, Приложение панели управления Bluetooth
cfgmgr32.dll, 0x7fefd080000, 216 kB, Configuration Manager DLL
clbcatq.dll, 0x7feff510000, 612 kB, COM+ Configuration Catalog
clr.dll, 0x7fef8680000, 9,63 MB, Microsoft .NET Runtime Common Language Runtime - WorkStation
comctl32.dll, 0x7fefb240000, 1,95 MB, Библиотека элементов управления взаимодействия с пользователем
comctl32.dll.mui, 0x22d0000, 12 kB, Библиотека элементов управления взаимодействия с пользователем
counters.dat, 0x8e40000, 4 kB,
credssp.dll, 0x7fefc420000, 40 kB, Credential Delegation Security Package
crypt32.dll, 0x7fefd0c0000, 1,43 MB, API32 криптографии
cryptbase.dll, 0x7fefcef0000, 60 kB, Base cryptographic API DLL
cryptnet.dll, 0x7fef93e0000, 156 kB, Crypto Network Related API
cryptsp.dll, 0x7fefc850000, 96 kB, Cryptographic Service Provider API
cryptui.dll, 0x7fefbc90000, 1,04 MB, Интерфейс поставщика доверия
cscapi.dll, 0x7fef1ac0000, 60 kB, Offline Files Win32 API
cscdll.dll, 0x7fef0a20000, 48 kB, Offline Files Temporary Shim
cscobj.dll, 0x7feec9b0000, 252 kB, Внутрипроцессный COM-объект используемый клиентами CSC API
cscui.dll, 0x7feef3c0000, 504 kB, Интерфейс кэширования на стороне клиента
cversions.2.db, 0x2e20000, 16 kB,
cversions.2.db, 0x2e60000, 16 kB,
cversions.2.db, 0x4720000, 16 kB,
cversions.2.db, 0x4c80000, 16 kB,
cversions.2.db, 0x4e30000, 16 kB,
cversions.2.db, 0x6240000, 16 kB,
C_1250.NLS, 0x35b0000, 68 kB,
C_1252.NLS, 0x2220000, 68 kB,
C_1253.NLS, 0x3720000, 68 kB,
C_1255.NLS, 0x3740000, 68 kB,
C_1256.NLS, 0x3590000, 68 kB,
C_932.NLS, 0x3760000, 160 kB,
C_949.NLS, 0x4c20000, 196 kB,
C_950.NLS, 0x3660000, 196 kB,
davclnt.dll, 0x7fef7310000, 116 kB, Web DAV Client DLL
davhlpr.dll, 0x7fef7300000, 40 kB, DAV Helper DLL
dbghelp.dll, 0x7feed060000, 1,14 MB, Windows Image Helper
devobj.dll, 0x7fefd3a0000, 104 kB, Device Information Set DLL
devrtl.dll, 0x7fefc330000, 72 kB, Device Management Run Time Library
dfshim.dll, 0x7feebe90000, 1,87 MB, Библиотека поддержки развертывания приложения ClickOnce
dhcpcsvc.dll, 0x7fefafe0000, 96 kB, Служба DHCP-клиента
dhcpcsvc6.dll, 0x7fefae20000, 68 kB, Клиент DHCPv6
dnsapi.dll, 0x7fefc670000, 364 kB, Динамическая библиотека API DNS-клиента
drprov.dll, 0x7fefa120000, 40 kB, Служба доступа к сети для сервера, обслуживающего сеансы подключения к удаленному рабочему столу (Майкрософт)
dsrole.dll, 0x7fefb660000, 48 kB, DS Role Client DLL
DTShl64.dll, 0x7fef7330000, 748 kB, DAEMON Tools Pro
dui70.dll, 0x7fefa4b0000, 968 kB, Подсистема DirectUI Windows
duser.dll, 0x7fefa310000, 268 kB, Windows DirectUser Engine
dwmapi.dll, 0x7fefa2a0000, 96 kB, Интерфейс API диспетчера окон рабочего стола (Майкрософт)
DXP.dll, 0x7feecf40000, 464 kB, Расширение оболочки компонента Device Stage
ehSSO.dll, 0x7feecda0000, 44 kB, Windows Media Center Shell Service Object
EhStorShell.dll, 0x7fef0a30000, 212 kB, Библиотека DLL расширения оболочки Windows Enhanced Storage
es.dll, 0x7fefb5e0000, 412 kB, COM+
ExplorerFrame.dll, 0x7fef2730000, 1,79 MB, ExplorerFrame
framedynos.dll, 0x7fef1b40000, 304 kB, WMI SDK Provider Framework
FWPUCLNT.DLL, 0x7fefae50000, 332 kB, API пользовательского режима FWP/IPsec
FXSAPI.dll, 0x7feece80000, 628 kB, Microsoft Fax API Support DLL
FXSRESM.dll, 0x6b4c0000, 908 kB, Библиотека DLL ресурсов факса (Microsoft)
FXSST.dll, 0x7feed620000, 860 kB, Fax Service
gameux.dll, 0x7feee680000, 2,64 MB, Обозреватель игр
gdi32.dll, 0x7fefd970000, 412 kB, GDI Client DLL
GdiPlus.dll, 0x7fefa5b0000, 2,09 MB, Microsoft GDI+
gpapi.dll, 0x7fefc310000, 108 kB, Клиентские функции API групповой политики
GROOVEEX.DLL, 0x7fef24f0000, 2,24 MB, Microsoft OneDrive for Business Extensions
GrooveIntlResource.dll, 0x7fef0ab0000, 8,52 MB, Модуль международных ресурсов для Microsoft OneDrive для бизнеса
HardlinkShellExt.dll, 0x7feef790000, 772 kB, Link Shell Extension
hcproviders.dll, 0x7fef79c0000, 44 kB, Поставщики центра поддержки
hgcpl.dll, 0x7feee5e0000, 340 kB, Панель управления домашней группы
hgcpl.dll.mui, 0x3490000, 56 kB, Панель управления домашней группы
hid.dll, 0x7fefa2c0000, 44 kB, Библиотека пользователя HID
hnetcfg.dll, 0x7feef2f0000, 428 kB, Диспетчер конфигурации домашней сети
IconCodecService.dll, 0x7fef3100000, 32 kB, Converts a PNG part of the icon to a legacy bmp icon
ieframe.dll, 0x7feea260000, 13,76 MB, Браузер
ieproxy.dll, 0x7fef7900000, 744 kB, IE ActiveX Interface Marshaling Library
iertutil.dll, 0x7fefdbc0000, 2,78 MB, Run time utility for Internet Explorer
imagehlp.dll, 0x7fefd740000, 100 kB, Windows NT Image Helper
imageres.dll, 0x4e60000, 19,33 MB, Windows Image Resource
imageres.dll, 0x8f60000, 19,33 MB, Windows Image Resource
imageres.dll, 0x14200000, 19,33 MB, Windows Image Resource
imageres.dll.mui, 0x35d0000, 4 kB, Windows Image Resource
imageres.dll.mui, 0x3600000, 4 kB, Windows Image Resource
imapi2.dll, 0x7feece00000, 508 kB, IMAPI версии 2
imm32.dll, 0x7feff4e0000, 184 kB, Multi-User Windows IMM32 API Client DLL
inject.dll, 0x7feed010000, 272 kB, Part of 7+ Taskbar Tweaker
IPHLPAPI.DLL, 0x7fefb160000, 156 kB, IP Helper API
kernel32.dll, 0x77080000, 1,12 MB, Библиотека клиента Windows NT BASE API
KernelBase.dll, 0x7fefd250000, 432 kB, Библиотека клиента Windows NT BASE API
KernelBase.dll.mui, 0x8240000, 792 kB, Библиотека клиента Windows NT BASE API
ksuser.dll, 0x6c470000, 24 kB, User CSA Library
linkinfo.dll, 0x7feee4d0000, 48 kB, Windows Volume Tracking
locale.nls, 0x60000, 412 kB,
logoncli.dll, 0x7fefc640000, 192 kB, Net Logon Client DLL
lpk.dll, 0x7fefd4b0000, 56 kB, Language Pack
mf.dll, 0x7fef55b0000, 3,94 MB, Библиотека базы мультимедиа
mfplat.dll, 0x7fef5540000, 436 kB, Media Foundation Platform DLL
midimap.dll, 0x7feed8b0000, 36 kB, Microsoft MIDI Mapper
mlang.dll, 0x7feeb250000, 236 kB, Библиотека DLL многоязыковой поддержки
MMDevAPI.dll, 0x7fefbaf0000, 300 kB, MMDevice API
mpr.dll, 0x7fef2e40000, 96 kB, Библиотека маршрутизации для нескольких служб доступа
mprapi.dll, 0x7feecfd0000, 232 kB, Windows NT MP Router Administration DLL
msacm32.dll, 0x7feee5b0000, 96 kB, Фильтр диспетчера аудиосжатия Microsoft
msacm32.drv, 0x7feee5d0000, 40 kB, Программа переназначения звуковых устройств
msasn1.dll, 0x7fefd060000, 60 kB, ASN.1 Runtime APIs
mscoree.dll, 0x7fefa370000, 444 kB, Microsoft .NET Runtime Execution Engine
mscoreei.dll, 0x7fef9020000, 628 kB, Microsoft .NET Runtime Execution Engine
msctf.dll, 0x7feff1d0000, 1,04 MB, Серверная библиотека MSCTF
msftedit.dll, 0x7feeccd0000, 792 kB, Rich Text Edit Control, v4.1
msi.dll, 0x7fef21d0000, 3,11 MB, Windows Installer
msiltcfg.dll, 0x7feee4c0000, 36 kB, Windows Installer Configuration API Stub
msls31.dll, 0x7feee560000, 264 kB, Microsoft Line Services library file
mssprxy.dll, 0x7feec480000, 116 kB, Microsoft Search Proxy
msutb.dll, 0x7fef2c10000, 244 kB, Библиотека (DLL) сервера MSUTB
msvcp100.dll, 0x6f140000, 608 kB, Microsoft® C Runtime Library
msvcp80.dll, 0x6ef70000, 1,04 MB, Microsoft® C++ Runtime Library
msvcr100.dll, 0x6f1e0000, 840 kB, Microsoft® C Runtime Library
msvcr120_clr0400.dll, 0x7fef85a0000, 856 kB, Microsoft® C Runtime Library
msvcr80.dll, 0x6cc60000, 804 kB, Microsoft® C Runtime Library
msvcrt.dll, 0x7fefe110000, 636 kB, Windows NT CRT DLL
mswsock.dll, 0x7fefc7f0000, 340 kB, Расширение поставщика службы API Microsoft Windows Sockets 2.0
msxml6.dll, 0x7fefabc0000, 1,94 MB, MSXML 6.0 SP3
msxml6r.dll, 0x2260000, 4 kB, XML Resources
ncrypt.dll, 0x7fefc9d0000, 320 kB, Криптографическая библиотека (Windows)
netapi32.dll, 0x7fefb1d0000, 88 kB, Net Win32 API DLL
netshell.dll, 0x7feed360000, 2,54 MB, Оболочка сетевых подключений
netutils.dll, 0x7fefb1c0000, 48 kB, Net Win32 API Helpers DLL
networkexplorer.dll, 0x7feedea0000, 1,61 MB, Сетевой проводник
nlaapi.dll, 0x7fefb670000, 84 kB, Network Location Awareness 2
normaliz.dll, 0x77470000, 12 kB, Unicode Normalization DLL
npmproxy.dll, 0x7feef100000, 48 kB, Network List Manager Proxy
nsi.dll, 0x7fefd4c0000, 32 kB, NSI User-mode interface DLL
nsm.dll, 0x7feee930000, 1,23 MB, NetSpeedMonitor
ntdll.dll, 0x772a0000, 1,66 MB, Системная библиотека NT
ntlanman.dll, 0x7fef8040000, 136 kB, Microsoft® LAN Manager
ntmarta.dll, 0x7fefbc60000, 180 kB, Поставщик Windows NT MARTA
ntshrui.dll, 0x7feef1e0000, 512 kB, Расширения оболочки, обеспечивающие доступ к ресурсам
ntshrui.dll.mui, 0x8380000, 36 kB, Расширения оболочки, обеспечивающие доступ к ресурсам
nvshext.dll, 0x67390000, 76 kB, NVIDIA Display Shell Extension
OFFICE.ODF, 0x7fef1340000, 5 MB, Microsoft Office culture data dll
ole32.dll, 0x7fefd530000, 2,01 MB, Microsoft OLE для Windows
oleacc.dll, 0x7fef9e30000, 336 kB, Active Accessibility Core Component
oleaccrc.dll, 0x4de0000, 4 kB, Active Accessibility Resource DLL
oleaut32.dll, 0x7feff020000, 860 kB,
pnidui.dll, 0x7feed960000, 1,74 MB, Значок сетевой системы
PortableDeviceApi.dll, 0x7feef040000, 756 kB, Компоненты API для переносных устройств Windows
PortableDeviceTypes.dll, 0x7feecb20000, 228 kB, Windows Portable Device (Parameter) Types Component
powrprof.dll, 0x7fefbb40000, 176 kB, DLL модуля поддержки профиля управления питанием
prnfldr.dll, 0x7feedb30000, 420 kB, prnfldr dll
profapi.dll, 0x7fefd050000, 60 kB, User Profile Basic API
propsys.dll, 0x7fefb9c0000, 1,17 MB, Система страниц свойств (Microsoft)
provsvc.dll, 0x7feed8c0000, 196 kB, Домашняя группа Windows
psapi.dll, 0x77460000, 28 kB, Process Status Helper
QAGENT.DLL, 0x7feeba40000, 276 kB, Прокси агента карантина
QUTIL.DLL, 0x7feed940000, 124 kB, Служебные программы карантина
RarExt.dll, 0x7fef5c10000, 448 kB, WinRAR shell extension
RarLng.dll, 0x34b0000, 264 kB, Архиватор WinRAR
rasadhlp.dll, 0x7fef30e0000, 32 kB, Remote Access AutoDial Helper
rasapi32.dll, 0x7fef9ee0000, 392 kB, Remote Access API
rasdlg.dll, 0x7feecb90000, 864 kB, API общих диалогов службы удаленного доступа
rasman.dll, 0x7fef9ec0000, 112 kB, Remote Access Connection Manager
RockallDLL.dll, 0x10000000, 208 kB,
rpcrt4.dll, 0x7feff360000, 1,18 MB, Библиотека удаленного вызова процедур
RpcRtRemote.dll, 0x7fefcfa0000, 80 kB, Remote RPC Extension
rsaenh.dll, 0x7fefc550000, 284 kB, Microsoft Enhanced Cryptographic Provider
rtutils.dll, 0x7fef9ea0000, 68 kB, Routing Utilities
samcli.dll, 0x7fef9ff0000, 80 kB, Security Accounts Manager Client DLL
samlib.dll, 0x7fefb1f0000, 116 kB, SAM Library DLL
sbdrop.dll, 0x7fef6d40000, 104 kB, Боковая панель - droptarget
sechost.dll, 0x7fefde90000, 124 kB, Host for SCM/SDDL/LSA Lookup APIs
secur32.dll, 0x7fefcc60000, 44 kB, Security Support Provider Interface
SensApi.dll, 0x7feee220000, 36 kB, SENS Connectivity API DLL
setupapi.dll, 0x7fefd9e0000, 1,84 MB, Windows Setup API
shdocvw.dll, 0x7feee480000, 208 kB, Библиотека объектов документов и элементов управления оболочки
shell32.dll, 0x7fefe290000, 13,54 MB, Общая библиотека оболочки Windows
shlwapi.dll, 0x7fefd8f0000, 452 kB, Библиотека небольших программ оболочки
slc.dll, 0x7fefb5d0000, 44 kB, Software Licensing Client DLL
SndVolSSO.dll, 0x7fefa2d0000, 236 kB, Громкость SCA
SortDefault.nls, 0x2400000, 2,81 MB,
srchadmin.dll, 0x7feec930000, 352 kB, Параметры индексирования
srvcli.dll, 0x7fefcaf0000, 140 kB, Server Service Client DLL
sspicli.dll, 0x7fefce20000, 148 kB, Security Support Provider Interface
StaticCache.dat, 0x3df0000, 9,19 MB,
stobject.dll, 0x7feed310000, 268 kB, Объект службы оболочки Systray
StructuredQuery.dll, 0x7fef6ef0000, 492 kB, Structured Query
sxs.dll, 0x7fefcf00000, 580 kB, Fusion 2.5
SyncCenter.dll, 0x7feec070000, 2,17 MB, Центр синхронизации Майкрософт
synceng.dll, 0x7fef9f60000, 108 kB, Windows Briefcase Engine
Syncreg.dll, 0x7feecf20000, 88 kB, Microsoft Synchronization Framework Registration
syncui.dll, 0x7fef5bd0000, 212 kB, Портфель Windows
timedate.cpl, 0x7feeea70000, 524 kB, Настройка даты/времени
timedate.cpl.mui, 0x67a0000, 24 kB, Настройка даты/времени
tiptsf.dll, 0x7feee4e0000, 508 kB, Инфраструктура текстовой службы панели ввода планшетного ПК
UIAnimation.dll, 0x7feed900000, 232 kB, Windows Animation Manager
urlmon.dll, 0x7fefd760000, 1,52 MB, Расширения OLE32 для Win32
urlmon.dll.mui, 0x6ab0000, 36 kB, Расширения OLE32 для Win32
user32.dll, 0x771a0000, 1 000 kB, Многопользовательская библиотека клиента USER API Windows
userenv.dll, 0x7fefd3c0000, 120 kB, Userenv
usp10.dll, 0x7feff100000, 804 kB, Uniscribe Unicode script processor
uxtheme.dll, 0x7fefa7d0000, 344 kB, Библиотека тем UxTheme (Microsoft)
version.dll, 0x7fefc120000, 48 kB, Version Checking and File Installation Libraries
wdmaud.drv, 0x7feee640000, 236 kB, Системный звуковой драйвер Winmm
webio.dll, 0x7fefaeb0000, 400 kB, API протоколов передачи по Веб
wer.dll, 0x7feeece0000, 496 kB, Библиотека сообщений об ошибках Windows
werconcpl.dll, 0x7fef79f0000, 1,23 MB, PRS CPL
wercplsupport.dll, 0x7fef79d0000, 100 kB, Отчеты о проблемах и их решениях
wevtapi.dll, 0x7fefca60000, 436 kB, API настройки и использования событий
WindowsCodecs.dll, 0x7fefa130000, 1,38 MB, Microsoft Windows Codecs Library
winhttp.dll, 0x7fefaf20000, 452 kB, Службы HTTP Windows
wininet.dll, 0x7fefdeb0000, 2,35 MB, Расширения Интернета для Win32
winmm.dll, 0x7fef9900000, 236 kB, MCI API DLL
winnsi.dll, 0x7fefb150000, 44 kB, Network Store Information RPC interface
winspool.drv, 0x7fef9450000, 452 kB, Драйвер диспетчера очереди Windows
winsta.dll, 0x7fefceb0000, 244 kB, Winstation Library
wintrust.dll, 0x7fefd360000, 236 kB, Microsoft Trust Verification APIs
wkscli.dll, 0x7fefb1a0000, 84 kB, Workstation Service Client DLL
wlanapi.dll, 0x7feec990000, 128 kB, Windows WLAN AutoConfig Client Side API DLL
wlanutil.dll, 0x7feed5f0000, 28 kB, Библиотека DLL программы беспроводной локальной сети Windows по протоколу 802.11
Wldap32.dll, 0x7fefd4d0000, 328 kB, Win32 LDAP API DLL
wpdshext.dll, 0x7fef7080000, 2,44 MB, Расширение оболочки для переносных устройств
WPDShServiceObj.dll, 0x7feecb60000, 128 kB, Windows Portable Device Shell Service Object
ws2_32.dll, 0x7feff490000, 308 kB, 32-разрядная библиотека Windows Socket 2.0
wscapi.dll, 0x7fef7c50000, 76 kB, Windows Security Center API
wscinterop.dll, 0x7fef7c70000, 160 kB, Windows Health Center WSC Interop
wscui.cpl, 0x7fef7b30000, 1,12 MB, Центр поддержки
wship6.dll, 0x7fefc7e0000, 28 kB, Библиотека DLL помощника Winsock2 (TL/IPv6)
WSHTCPIP.DLL, 0x7fefc1f0000, 28 kB, Библиотека DLL помощника службы Winsock2 (TL/IPv4)
wtsapi32.dll, 0x7fefc2b0000, 68 kB, Windows Remote Desktop Session Host Server SDK APIs
WWanAPI.dll, 0x7feec2a0000, 376 kB, Mbnapi
wwapi.dll, 0x7feecfc0000, 52 kB, WWAN API
xmllite.dll, 0x7fefa9f0000, 212 kB, Microsoft XmlLite Library
или любое другое простейшее приложение Windows:
advapi32.dll, 0x75120000, 644 kB, Расширенная библиотека API Windows 32
apisetschema.dll, 0x40000, 4 kB, ApiSet Schema DLL
comctl32.dll, 0x6ed80000, 528 kB, Библиотека элементов управления взаимодействия с пользователем
cryptbase.dll, 0x74de0000, 48 kB, Base cryptographic API DLL
dwmapi.dll, 0x6fc40000, 76 kB, Интерфейс API диспетчера окон рабочего стола (Майкрософт)
gdi32.dll, 0x763c0000, 576 kB, GDI Client DLL
imm32.dll, 0x76fc0000, 384 kB, Multi-User Windows IMM32 API Client DLL
kernel32.dll, 0x75330000, 1,06 MB, Библиотека клиента Windows NT BASE API
KernelBase.dll, 0x767c0000, 284 kB, Библиотека клиента Windows NT BASE API
locale.nls, 0x1b0000, 412 kB,
lpk.dll, 0x76460000, 40 kB, Language Pack
msctf.dll, 0x74f90000, 816 kB, Серверная библиотека MSCTF
msvcrt.dll, 0x75070000, 688 kB, Windows NT CRT DLL
ntdll.dll, 0x772a0000, 1,66 MB, Системная библиотека NT
ntdll.dll, 0x77480000, 1,5 MB, Системная библиотека NT
ole32.dll, 0x751d0000, 1,36 MB, Microsoft OLE для Windows
oleaut32.dll, 0x76f30000, 572 kB,
rpcrt4.dll, 0x76c90000, 960 kB, Библиотека удаленного вызова процедур
sechost.dll, 0x74ef0000, 100 kB, Host for SCM/SDDL/LSA Lookup APIs
SortDefault.nls, 0x3070000, 2,81 MB,
sspicli.dll, 0x74df0000, 384 kB, Security Support Provider Interface
StaticCache.dat, 0x2740000, 9,19 MB,
user32.dll, 0x76970000, 1 MB, Многопользовательская библиотека клиента USER API Windows
usp10.dll, 0x76270000, 628 kB, Uniscribe Unicode script processor
uxtheme.dll, 0x6fab0000, 512 kB, Библиотека тем UxTheme (Microsoft)
wow64.dll, 0x72d80000, 252 kB, Win32 Emulation on NT64
wow64cpu.dll, 0x72d10000, 32 kB, AMD64 Wow64 CPU
wow64win.dll, 0x72d20000, 368 kB, Wow64 Console and Win32 API Logging
И так во всех известных мне ОС
Чем же Qt хуже?
карма: 1
0
Ответов: 2059
Рейтинг: 132
#229: 2015-06-12 20:23:45 ЛС | профиль | цитата
Красиво, ничего не скажешь!
У меня давно была похожая мысля.
Но меня испугало то обстоятельство, что когда я делал приложения для форума далёкого от понимания, как всё работает, так они поднимали вой, если даже rar.dll не хватало. А иногда приходилось объяснять, что надо сначала всё разархивировать, а потом пользоваться.
...Но у меня-же другие файлы прямо из архива запускаются...

карма: 6

0
Ответов: 1841
Рейтинг: 369
#230: 2015-06-12 20:49:35 ЛС | профиль | цитата
flint2, в некоторых случаях, можно собрать статическую версию Qt (на i5-2300 в 4 потока ~15-20 минут).
Если собирать с помощью gcc:
Без сжатия - 11 мб
Сжатие (upx --best) - ~5мб.
Если собирать с помощью VS2013:
Без сжатия - 8,40 МБ (8*817*152 байт)
Сжатие (upx.exe --best) - 3,53 МБ (3*701*760 байт)
Таким образом, мы полностью отучим приложение от всех зависимостей.
------------ Дoбавленo в 20.49:
Вот ещё немного инфы с одного форума.
Это собственно мои тесты.
Оконный проект, созданный по умолчанию в Qt Creator версии 3.3.0.

Qt_5_4_0_MinGW_491_32bit-Release - динамическая линковка
TestSize.exe - 24,5 КБ (25*088 байт)
TestSize.exe+все_модули - 44,2 МБ (46*451*706 байт)
Qt_5_4_0_MinGW_491_32bit-Release.7z (TestSize.exe+все_модули+максимум_сжатия) - 11,5 МБ (12*141*852 байт)
Private Byte запущенной программы (Windows 7, x64) - 64,15 MB

Qt5_4_0_static_x32_4_9_2r1-Release - статическая линковка
TestSize.exe - 14,0 МБ (14*780*416 байт)
TestSize_upx.exe (upx.exe --best) - 5,27 МБ (5*532*160 байт)
TestSize.7z - 4,47 МБ (4*689*317 байт)
TestSize.exe - Private Byte запущенной программы (Windows 7, x64) - 28,67 MB
TestSize_upx.exe - Private Byte запущенной программы (Windows 7, x64) - 42,77 MB

Qt5_4_0_static_x64_4_9_2r1-Release - статическая линковка
TestSize.exe - 13,0 МБ (13*702*144 байт)
TestSize_upx.exe (upx.exe --best) - 5,48 МБ (5*750*272 байт)
TestSize.7z - 4,26 МБ (4*473*217 байт)
TestSize.exe - Private Byte запущенной программы (Windows 7, x64) - 30,42 MB
TestSize_upx.exe - Private Byte запущенной программы (Windows 7, x64) - 43,3 MB

Qt_5_4_0_msvc2013_opengl_32bit-Release - динамическая линковка
TestSize.exe - 23,0 КБ (23*552 байт)
TestSize.exe+все_модули - 38,3 МБ (40*190*784 байт)
Qt_5_4_0_msvc2013_opengl_32bit-Release.7z (TestSize.exe+все_модули+максимум_сжатия) - 10,0 МБ (10*571*596 байт)
Private Byte запущенной программы (Windows 7, x64) - 28,8 MB

Qt5_4_0_static_x32_vs2013-Release - статическая линковка
TestSize.exe - 8,40 МБ (8*817*152 байт)
TestSize_upx.exe (upx.exe --best) - 3,53 МБ (3*701*760 байт)
TestSize.7z - 3,06 МБ (3*217*479 байт)
TestSize.exe - Private Byte запущенной программы (Windows 7, x64) - 28,51 MB
TestSize_upx.exe - Private Byte запущенной программы (Windows 7, x64) - 37 MB

Qt5_4_0_static_x64_vs2013-Release - статическая линковка
TestSize.exe - 10,2 МБ (10*791*936 байт)
TestSize_upx.exe (upx.exe --best) - 4,53 МБ (4*759*552 байт)
TestSize.7z - 3,62 МБ (3*796*482 байт)
TestSize.exe - Private Byte запущенной программы (Windows 7, x64) - 31,05 MB
TestSize_upx.exe - Private Byte запущенной программы (Windows 7, x64) - 41,32 MB

Данные не являются точными, т.к. зависят от параметров сборки, но, все комплекты собирались с одинаковыми параметрами.
карма: 1
0
Ответов: 2059
Рейтинг: 132
#231: 2015-06-13 02:56:51 ЛС | профиль | цитата
Всё это интересно!
Обязательно займусь.
Сейчас хочу выложить несколько серий компонентов различных направлений.
Надо всё причесать, а потом займусь.
А то никогда не доведу до конца задуманное.
------------ Дoбавленo в 02.56:
CriDos,
Немножко попробовал...
Можно сделать целевую компиляцию, если твой кодогенератор укажет что выдёргивать из QT, - а он этим и занимается.
Т.е. Твоя программа вызовов из среды, или как назвать, линкуется с тем, что я вытащил из QT + stub,(import?)... PE заголовок
Я на этом собаку съел, если повар мне не врёт.
Exe`шник я соберу.
Большое подозрение, что там всё повязано до седьмого калена, если чего посерьёзней окошек и кнопочек.
Надо пробовать дальше.
карма: 6

0
Ответов: 1841
Рейтинг: 369
#232: 2015-06-13 03:25:02 ЛС | профиль | цитата
flint2, ничего не понял
карма: 1
0
Ответов: 2059
Рейтинг: 132
#233: 2015-06-13 11:28:45 ЛС | профиль | цитата

CriDos
ничего не понял

Самим делать ликовку и exe`шник.
Это даёт свободу, как всё собирать.
Т.е. почти без проблем можно вытащить нужный код из QT, этим я и занимался, (пока в ассемблере, но можно и в цифре, потому что есть Relocation table, или можно сделать. (я делал из exe`шников dll, где нет Relocation - есть метода)).
Пока затрудняюсь сказать, как можно рулить "фирменными" компиляторами, по моему нельзя.
И по барабану языки (опять образно - фигура речи).
Позже постараюсь всё разложить по полочкам и на примерах.
Конечно трудно изложить всё сразу.
Прошу извинить за сумбурность изложения.
------------ Дoбавленo в 11.28:
Нет, плохо получается.
Конечно нужна вся среда.
карма: 6

0
Ответов: 316
Рейтинг: 21
#234: 2015-06-13 11:44:17 ЛС | профиль | цитата
flint2, ничего не понял
карма: 1

0
Ответов: 2059
Рейтинг: 132
#235: 2015-06-13 12:04:55 ЛС | профиль | цитата
LastLeader,
да ничего не получилось.
Я хотел сделать "целевой компилятор", чтобы не зависить от среды QT.
За то файлы получаются маленькие http://forum.hiasm.com/forum_serv.php?q=56&id=3962
карма: 6

0
Ответов: 1841
Рейтинг: 369
#236: 2015-06-13 18:40:38 ЛС | профиль | цитата
flint2, теперь я понял о чём Вы
Но причём здесь среда?
Для сборки необходим только qmake, хотя можно обойтись и без него.
Мб имелся ввиду фреймворк Qt?
И да, тут всё завязано не до 9 колена, а гораздо глубже и тщательней, дабы сделать максимально эффективным использование существующего "неиспользуемого" кода.
Например, совершенно все модули Qt, практически полностью реализованы на основе функционала QtCore.
В общем, легче тогда из исходников Qt выкидывать ненужный функционал, но это не так просто как кажется , я пробовал

Кроме того, Ваша идея полностью рушит другую, более важную идею - crash reporting system.
При критических ошибках, мы можем сами отловить падения приложения, через заранее зарезервированные с помощью системы функции (я потратил месяц на изучение различных технологий из этой области, и это круто ).
Но это всё мелочи, т.к. отловить мы можем и в изменённом бинарнике, а вот сделать полноценный дамп, соответствующий нашему отладочному образу, будет уже невозможно.
Т.е. мы потеряем очень крутую технологию отладки приложений, которая может показать разработчику все детали падения (состояния переменных; последняя строка в стеке, после которой произошло падение).
А загрузив небольшой дамп (около 1-2 мб) в WinDbg, мы сразу же получим даже строчку в коде, где произошла критическая ошибка
Вот кстати, какие исключения мы можем перехватывать через ОС и обработать их САМИ, даже если была повреждена память приложения или стек (тут я уже использую свою технологию ) :
Access Violation
Terminate call
Unexpected call
Pure call
Buffer overrun
Invalid parameter
New operator error
SIGABRT
SIGFPE
SIGILL
SIGINT
SIGSEGV
SIGTERM
NONCONTINUABLE
THROW
Stack overflow
Raise Exception
Всё это работает и в многопоточном режиме, с некоторыми условиями .
карма: 1
0
Ответов: 2059
Рейтинг: 132
#237: 2015-06-13 18:48:49 ЛС | профиль | цитата
CriDos,
Полностью с Вами согласен.
Но не ошибается тот, кто ничего не делает.
Это я про себя.
карма: 6

0
Ответов: 1841
Рейтинг: 369
#238: 2015-08-13 10:45:25 ЛС | профиль | цитата
Ну что же, потихонечку продолжаю работать над отвязыванием кодогенераторов от среды.
На этот раз, были объедены два проекта - HiAsm_Interface и HiAsm_ProxyInterface.
Все наработки HiAsm_ProxyInterface перенёс в проект HiAsm_Interface и в дальнейшем будет развиваться только он.
Так же были внесены исправления и изменения в прокси-функции, что позволило выводить информацию в более человекочитаемом виде и добавлена частичная поддержка кириллицы.
Репозиторий проекта HiAsm_Interface: https://github.com/CriDos/HiAsm_Interface

Пример сбора информации классом MainContainer о пустой схеме, пакета Windows:

CODEGEN_PROCESS_ATTACH
Call func: int CheckVersionProc(THiAsmVersion&)
Result: 0
Call func: int buildPrepareProc(TBuildPrepareRec&)
Result: 0
Call func: int buildProcessProc(TBuildProcessRec&)
Call func: int cgt::sdkGetCount(id_sdk)
Arg1: 40589232
Result: 1
Call func: id_element cgt::sdkGetElement(id_sdk, int)
Arg1: 40589232
Arg2: 0
Result: 40594832
Call func: ElementClasses cgt::elGetClassIndex(id_element)
Arg1: 40594832
Result: CI_WinElement
Call func: ElementFlags cgt::elGetFlag(id_element)
Arg1: 40594832
Result: QFlags(0x2|0x8|0x200)
Call func: char* cgt::elGetClassName(id_element)
Arg1: 40594832
Result: "MainForm"
Call func: ElementClasses cgt::elGetClassIndex(id_element)
Arg1: 40594832
Result: CI_WinElement
Call func: ElementFlags cgt::elGetFlag(id_element)
Arg1: 40594832
Result: QFlags(0x2|0x8|0x200)
Call func: char* cgt::elGetInherit(id_element)
Arg1: 40594832
Result: "WinControl"
Call func: int cgt::elGetSDKCount(id_element)
Arg1: 40594832
Result: 0
Call func: int cgt::elGetGroup(id_element)
Arg1: 40594832
Result: 0
Call func: char* cgt::elGetInterface(id_element)
Arg1: 40594832
Result: "ControlManager"
Call func: char* cgt::elGetInfSub(id_element)
Arg1: 40594832
Result: ""
Call func: int cgt::elGetPropCount(id_element)
Arg1: 40594832
Result: 38
Call func: int cgt::elGetPropertyListCount(id_element)
Arg1: 40594832
Result: 38
Call func: int cgt::elGetPtCount(id_element)
Arg1: 40594832
Result: 7
Call func: bool cgt::elLinkIs(id_element)
Arg1: 40594832
Result: false
Call func: id_element cgt::elLinkMain(id_element)
Arg1: 40594832
Result: 0
Call func: void cgt::elGetPos(id_element, int&, int&)
Arg1: 40594832
Arg2: 21
Arg3: 105
Call func: void cgt::elGetSize(id_element, int&, int&)
Arg1: 40594832
Arg2: 32
Arg3: 32
Call func: id_point cgt::elGetPt(id_element, int)
Arg1: 40594832
Arg2: 0
Result: 41085096
Call func: DataTypes cgt::ptGetDataType(id_point)
Arg1: 41085096
Result: data_null
Call func: int cgt::ptGetIndex(id_point)
Arg1: 41085096
Result: 0
Call func: char* cgt::ptGetInfo(id_point)
Arg1: 41085096
Result: "Изменяет надпись в заголовке формы"
Call func: id_point cgt::ptGetLinkPoint(id_point)
Arg1: 41085096
Result: 0
Call func: char* cgt::ptGetName(id_point)
Arg1: 41085096
Result: "doCaption"
Call func: id_element cgt::ptGetParent(id_point)
Arg1: 41085096
Result: 40594832
Call func: id_point cgt::ptGetRLinkPoint(id_point)
Arg1: 41085096
Result: 0
Call func: PointsTypes cgt::ptGetType(id_point)
Arg1: 41085096
Result: pt_Work
Call func: char* cgt::pt_dpeGetName(id_point)
Arg1: 41085096
Result: ""
Call func: id_point cgt::elGetPt(id_element, int)
Arg1: 40594832
Arg2: 1
Result: 41085384
Call func: DataTypes cgt::ptGetDataType(id_point)
Arg1: 41085384
Result: data_null
Call func: int cgt::ptGetIndex(id_point)
Arg1: 41085384
Result: 1
Call func: char* cgt::ptGetInfo(id_point)
Arg1: 41085384
Result: "Восстанавливает форму из свёрнутого состояния"
Call func: id_point cgt::ptGetLinkPoint(id_point)
Arg1: 41085384
Result: 0
Call func: char* cgt::ptGetName(id_point)
Arg1: 41085384
Result: "doRestore"
Call func: id_element cgt::ptGetParent(id_point)
Arg1: 41085384
Result: 40594832
Call func: id_point cgt::ptGetRLinkPoint(id_point)
Arg1: 41085384
Result: 0
Call func: PointsTypes cgt::ptGetType(id_point)
Arg1: 41085384
Result: pt_Work
Call func: char* cgt::pt_dpeGetName(id_point)
Arg1: 41085384
Result: ""
Call func: id_point cgt::elGetPt(id_element, int)
Arg1: 40594832
Arg2: 2
Result: 41085312
Call func: DataTypes cgt::ptGetDataType(id_point)
Arg1: 41085312
Result: data_null
Call func: int cgt::ptGetIndex(id_point)
Arg1: 41085312
Result: 2
Call func: char* cgt::ptGetInfo(id_point)
Arg1: 41085312
Result: "Сворачивает форму"
Call func: id_point cgt::ptGetLinkPoint(id_point)
Arg1: 41085312
Result: 0
Call func: char* cgt::ptGetName(id_point)
Arg1: 41085312
Result: "doMinimize"
Call func: id_element cgt::ptGetParent(id_point)
Arg1: 41085312
Result: 40594832
Call func: id_point cgt::ptGetRLinkPoint(id_point)
Arg1: 41085312
Result: 0
Call func: PointsTypes cgt::ptGetType(id_point)
Arg1: 41085312
Result: pt_Work
Call func: char* cgt::pt_dpeGetName(id_point)
Arg1: 41085312
Result: ""
Call func: id_point cgt::elGetPt(id_element, int)
Arg1: 40594832
Arg2: 3
Result: 41085240
Call func: DataTypes cgt::ptGetDataType(id_point)
Arg1: 41085240
Result: data_null
Call func: int cgt::ptGetIndex(id_point)
Arg1: 41085240
Result: 3
Call func: char* cgt::ptGetInfo(id_point)
Arg1: 41085240
Result: "Закрывает форму"
Call func: id_point cgt::ptGetLinkPoint(id_point)
Arg1: 41085240
Result: 0
Call func: char* cgt::ptGetName(id_point)
Arg1: 41085240
Result: "doClose"
Call func: id_element cgt::ptGetParent(id_point)
Arg1: 41085240
Result: 40594832
Call func: id_point cgt::ptGetRLinkPoint(id_point)
Arg1: 41085240
Result: 0
Call func: PointsTypes cgt::ptGetType(id_point)
Arg1: 41085240
Result: pt_Work
Call func: char* cgt::pt_dpeGetName(id_point)
Arg1: 41085240
Result: ""
Call func: id_point cgt::elGetPt(id_element, int)
Arg1: 40594832
Arg2: 4
Result: 41085528
Call func: DataTypes cgt::ptGetDataType(id_point)
Arg1: 41085528
Result: data_null
Call func: int cgt::ptGetIndex(id_point)
Arg1: 41085528
Result: 0
Call func: char* cgt::ptGetInfo(id_point)
Arg1: 41085528
Result: "Событие происходит всякий раз при активации формы"
Call func: id_point cgt::ptGetLinkPoint(id_point)
Arg1: 41085528
Result: 0
Call func: char* cgt::ptGetName(id_point)
Arg1: 41085528
Result: "onActivate"
Call func: id_element cgt::ptGetParent(id_point)
Arg1: 41085528
Result: 40594832
Call func: id_point cgt::ptGetRLinkPoint(id_point)
Arg1: 41085528
Result: 0
Call func: PointsTypes cgt::ptGetType(id_point)
Arg1: 41085528
Result: pt_Event
Call func: char* cgt::pt_dpeGetName(id_point)
Arg1: 41085528
Result: ""
Call func: id_point cgt::elGetPt(id_element, int)
Arg1: 40594832
Arg2: 5
Result: 41085600
Call func: DataTypes cgt::ptGetDataType(id_point)
Arg1: 41085600
Result: data_null
Call func: int cgt::ptGetIndex(id_point)
Arg1: 41085600
Result: 1
Call func: char* cgt::ptGetInfo(id_point)
Arg1: 41085600
Result: "Событие происходит всякий раз при деактивации формы"
Call func: id_point cgt::ptGetLinkPoint(id_point)
Arg1: 41085600
Result: 0
Call func: char* cgt::ptGetName(id_point)
Arg1: 41085600
Result: "onDeactivate"
Call func: id_element cgt::ptGetParent(id_point)
Arg1: 41085600
Result: 40594832
Call func: id_point cgt::ptGetRLinkPoint(id_point)
Arg1: 41085600
Result: 0
Call func: PointsTypes cgt::ptGetType(id_point)
Arg1: 41085600
Result: pt_Event
Call func: char* cgt::pt_dpeGetName(id_point)
Arg1: 41085600
Result: ""
Call func: id_point cgt::elGetPt(id_element, int)
Arg1: 40594832
Arg2: 6
Result: 41085744
Call func: DataTypes cgt::ptGetDataType(id_point)
Arg1: 41085744
Result: data_null
Call func: int cgt::ptGetIndex(id_point)
Arg1: 41085744
Result: 2
Call func: char* cgt::ptGetInfo(id_point)
Arg1: 41085744
Result: "Событие происходит один раз при создании формы"
Call func: id_point cgt::ptGetLinkPoint(id_point)
Arg1: 41085744
Result: 0
Call func: char* cgt::ptGetName(id_point)
Arg1: 41085744
Result: "onCreate"
Call func: id_element cgt::ptGetParent(id_point)
Arg1: 41085744
Result: 40594832
Call func: id_point cgt::ptGetRLinkPoint(id_point)
Arg1: 41085744
Result: 0
Call func: PointsTypes cgt::ptGetType(id_point)
Arg1: 41085744
Result: pt_Event
Call func: char* cgt::pt_dpeGetName(id_point)
Arg1: 41085744
Result: ""
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 0
Result: 40051688
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051688
Result: "Left"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051688
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40051688
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 1
Result: 40051708
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051708
Result: "Top"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051708
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40051708
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 2
Result: 40051728
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051728
Result: "Width"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051728
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40051728
Result: 400
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 3
Result: 40051748
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051748
Result: "Height"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051748
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40051748
Result: 300
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 4
Result: 40051768
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051768
Result: "Align"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051768
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40051768
Result: "caNone"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 5
Result: 40051788
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051788
Result: "Color"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051788
Result: data_color
Call func: int cgt::propToInteger(id_prop)
Arg1: 40051788
Result: -16777201
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 6
Result: 40051808
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051808
Result: "Font"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051808
Result: data_font
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 7
Result: 40051828
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051828
Result: "ParentFont"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051828
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40051828
Result: "False"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 8
Result: 40051848
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051848
Result: "Visible"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051848
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40051848
Result: "True"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 9
Result: 40051868
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051868
Result: "Enabled"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051868
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40051868
Result: "True"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 10
Result: 40051888
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051888
Result: "Cursor"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051888
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40051888
Result: "crDefault"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 11
Result: 40051908
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051908
Result: "KeyPreview"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051908
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40051908
Result: "True"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 12
Result: 40051928
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051928
Result: "TabOrder"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051928
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40051928
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 13
Result: 40051948
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051948
Result: "Ctl3D"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051948
Result: data_combo
Call func: unsigned char cgt::propToByte(id_prop)
Arg1: 40051948
Result: 1
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 14
Result: 40051968
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051968
Result: "WinStyle"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051968
Result: data_combo
Call func: unsigned char cgt::propToByte(id_prop)
Arg1: 40051968
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 15
Result: 40051988
Call func: char* cgt::propGetName(id_prop)
Arg1: 40051988
Result: "Name"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40051988
Result: data_str
Call func: char* cgt::propToString(id_prop)
Arg1: 40051988
Result: ""
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 16
Result: 40052008
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052008
Result: "Hint"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052008
Result: data_str
Call func: char* cgt::propToString(id_prop)
Arg1: 40052008
Result: ""
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 17
Result: 40052028
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052028
Result: "HintManager"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052028
Result: data_element
Call func: id_element cgt::propGetLinkedElement(id_element, const char*)
Arg1: 40594832
Arg2: "HintManager"
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 18
Result: 40052048
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052048
Result: "Layout"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052048
Result: data_element
Call func: id_element cgt::propGetLinkedElement(id_element, const char*)
Arg1: 40594832
Arg2: "Layout"
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 19
Result: 40052068
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052068
Result: "WidthScale"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052068
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40052068
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 20
Result: 40052088
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052088
Result: "HeightScale"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052088
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40052088
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 21
Result: 40052108
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052108
Result: "AlphaBlendValue"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052108
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40052108
Result: 255
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 22
Result: 40052128
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052128
Result: "Caption"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052128
Result: data_str
Call func: char* cgt::propToString(id_prop)
Arg1: 40052128
Result: "Form"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 23
Result: 40052148
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052148
Result: "BorderStyle"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052148
Result: data_combo
Call func: unsigned char cgt::propToByte(id_prop)
Arg1: 40052148
Result: 2
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 24
Result: 40052168
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052168
Result: "WindowsState"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052168
Result: data_combo
Call func: unsigned char cgt::propToByte(id_prop)
Arg1: 40052168
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 25
Result: 40052188
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052188
Result: "Icon"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052188
Result: data_icon
Call func: char* cgt::resAddIcon(id_prop)
Arg1: 40052188
Result: "ASMA"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 26
Result: 40052208
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052208
Result: "TaskBar"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052208
Result: data_combo
Call func: unsigned char cgt::propToByte(id_prop)
Arg1: 40052208
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 27
Result: 40052228
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052228
Result: "DragForm"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052228
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40052228
Result: "False"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 28
Result: 40052248
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052248
Result: "TransparentColor"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052248
Result: data_color
Call func: int cgt::propToInteger(id_prop)
Arg1: 40052248
Result: 16777215
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 29
Result: 40052268
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052268
Result: "Picture"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052268
Result: data_bitmap
Call func: char* cgt::resAddBitmap(id_prop)
Arg1: 40052268
Result: ""
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 30
Result: 40052288
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052288
Result: "SavePosName"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052288
Result: data_str
Call func: char* cgt::propToString(id_prop)
Arg1: 40052288
Result: ""
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 31
Result: 40052308
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052308
Result: "MouseCapture"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052308
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40052308
Result: "False"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 32
Result: 40052328
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052328
Result: "ClientSize"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052328
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40052328
Result: "False"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 33
Result: 40052348
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052348
Result: "Position"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052348
Result: data_comboEx
Call func: char* cgt::propToString(id_prop)
Arg1: 40052348
Result: "poNone"
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 34
Result: 40052368
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052368
Result: "ShiftLeft"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052368
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40052368
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 35
Result: 40052388
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052388
Result: "ShiftTop"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052388
Result: data_int
Call func: int cgt::propToInteger(id_prop)
Arg1: 40052388
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 36
Result: 40052408
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052408
Result: "TransparentManager"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052408
Result: data_element
Call func: id_element cgt::propGetLinkedElement(id_element, const char*)
Arg1: 40594832
Arg2: "TransparentManager"
Result: 0
Call func: id_prop cgt::elGetProperty(id_element, int)
Arg1: 40594832
Arg2: 37
Result: 40052428
Call func: char* cgt::propGetName(id_prop)
Arg1: 40052428
Result: "FormFastening"
Call func: DataTypes cgt::propGetType(id_prop)
Arg1: 40052428
Result: data_element
Call func: id_element cgt::propGetLinkedElement(id_element, const char*)
Arg1: 40594832
Arg2: "FormFastening"
Result: 0
CODEGEN_PROCESS_DETACH

------------ Дoбавленo в 10.45:
Или пример проксирования вызовов в процессе сборки пустой схемы, пакета Windows:
http://pastebin.com/yhDuzWQC
карма: 1
4
Голосовали:flint2, 1nd1g0, ser_davkin, LastLeader
Главный модератор
Ответов: 2999
Рейтинг: 396
#239: 2015-12-13 21:57:11 ЛС | профиль | цитата
CriDos, Существуют ли «в природе» бинарники HiAsm_ProxyInterface для тестирования кодогенератора Windows пакета? Если да, то можно ли их получить для работы над проектом HiAsm SDK?
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 1841
Рейтинг: 369
#240: 2015-12-14 06:22:21 ЛС | профиль | цитата
Nic писал(а):
Существуют ли «в природе» бинарники HiAsm_ProxyInterface

Вообще - пока нет, да и проекта HiAsm_ProxyInterface уже давно нет, только HiAsm_Interface остался
Но раз требуется для тестирования, то собрал на основе последней ревизии кода, статическую либу с подключенным логгером.
Исправленная версия: см. первый пост.
Оригинальный CodeGen.dll требуемого пакета нужно будет переименовать в CodeGen_original.dll.
Прокси-кодогенератор распаковать в директорию требуемого пакета, заместо оригинальнго CodeGen.dll.
Вся информация выводится в файл %HiAsm%\logs\%datatime%.log.
Сам прокси-кодогенератор работает с любым кодогенератором (Delphi, FTCG, RTCG).

Ну а в HiAsm_Interface уже на 80-90% реализована модель данных HiAsm4 и реализован класс способный эмулировать около 70% функций CodeGenTools.
Самое сложное уже позади и теперь точно можно сказать, что все кодогенераторы будут отвязаны от среды и будут работоспособны на 99% .
карма: 1
4
Голосовали:Nic, ser_davkin, LastLeader, Konst
Сообщение
...
Прикрепленные файлы
(файлы не залиты)