Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: размер DLL смущает, как уменьшить.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 5101
Maxim Rusov
Раньше Variants вообще не было. При этом все конвертации вариантов работали...

Раньше, это когда?
5 апр 21, 15:40    [22304554]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
В 5-ке
5 апр 21, 15:41    [22304556]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 5101
Maxim Rusov,

Ну блин... Давайте ещё с Турбо Паскалем сравним.
5 апр 21, 15:45    [22304561]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
Kazantsev Alexey,

Ты спросил - я ответил.

Суть в том, что нельзя подключить WinAPI-шные хидеры, не потянув за собой кучу ненужного кода (а в некоторых случаях - и очень вредного). Это бардак. Хидеры не должны ничего тянуть.
5 апр 21, 15:49    [22304570]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 5101
Maxim Rusov,

Подключение Winapi.Windows тянет только SysInit, System, System.Types, System.UITypes;
5 апр 21, 15:59    [22304582]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
Kazantsev Alexey,

А ActiveX и всех производных (а это все актуальные API) - еще и SysUtils.
5 апр 21, 16:02    [22304585]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 5101
Maxim Rusov,

В каких ситуациях это является проблемой?
5 апр 21, 16:06    [22304591]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
Kazantsev Alexey,

Стадия принятия? :) Очевидно - если я не хочу цеплять SysUtils. Я вот плагины пишу - это маленькие DLL-ки и их _много_. Они в большинстве <100 K.
5 апр 21, 16:10    [22304598]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 5101
Maxim Rusov
Стадия принятия? :)

Нет, я понять пытаюсь, от чего такая драма.

Maxim Rusov
Очевидно - если я не хочу цеплять SysUtils. Я вот плагины пишу - это маленькие DLL-ки и их _много_. Они в большинстве <100 K.

А, ну понятно...
5 апр 21, 16:13    [22304608]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
Maxim Rusov
А ActiveX и всех производных (а это все актуальные API) - еще и SysUtils.
Где?
+
{*******************************************************}
{                                                       }
{           CodeGear Delphi Runtime Library             }
{                                                       }
{        Files:  olectl.h, DocObj.h, oleauto.h          }
{        Copyright (c) Microsoft Corporation.           }
{        All Rights Reserved.                           }
{                                                       }
{       Translator: Embarcadero Technologies, Inc.      }
{ Copyright(c) 1995-2018 Embarcadero Technologies, Inc. }
{              All rights reserved                      }
{                                                       }
{*******************************************************}

{*******************************************************}
{            ActiveX / OLE 2 Interface Unit             }
{*******************************************************}

unit Winapi.ActiveX;

{$ALIGN ON}
{$MINENUMSIZE 4}
{$WEAKPACKAGEUNIT}
{$HPPEMIT LEGACYHPP}

interface

uses Winapi.Messages, System.Types, Winapi.Windows;
5 апр 21, 16:22    [22304617]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
_Vasilisk_,

Не читатель?
5 апр 21, 16:24    [22304622]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
Maxim Rusov
Не читатель?
program Test;

{$APPTYPE CONSOLE}

{$R *.res}

var
  LVar1: Variant;
  LVar2: OleVariant;
begin
  LVar1 := '123';
  Writeln(LVar1 + 1);
  LVar2 := '100';
  Writeln(LVar2 - 1);
  Readln;
end.
124
99
ЧЯДНТ?

Delphi 10.3.1
5 апр 21, 16:36    [22304633]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
GunSmoker
Member

Откуда:
Сообщений: 3210
_Vasilisk_, map файл глянь.
5 апр 21, 16:37    [22304634]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Fr0sT-Brutal
Member

Откуда:
Сообщений: 682
Ну хз. На 10.3 сделал проект, х64 Релиз

library Project1;
uses
  Windows,
  System.SysUtils;

{$R *.res}

var i: olevariant;
  s: string;
begin
  i := 'ddd';
  s := i;
  OutputDebugString(pchar(s));
end.


273 кб. Не то, о чем стоит беспокоиться.
Хотя, конечно, неявное подключение выглядит неуместно. Коль уж тип объявлен в system - так дайте с ним работать без довесков.

Можно извратиться и реализовать свой olevariant. Это ведь все равно в конечном итоге некая структура.

Сообщение было отредактировано: 5 апр 21, 16:32
5 апр 21, 16:38    [22304637]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
GunSmoker
map файл глянь.
Да. Уже вижу. Был не прав
+
 0001:00000000 0000C29C C=CODE     S=.text    G=(none)   M=System   ACBP=A9
0001:0000C29C 00000C50 C=CODE S=.text G=(none) M=SysInit ACBP=A9
0001:0000CEEC 00000038 C=CODE S=.text G=(none) M=System.Types ACBP=A9
0001:0000CF24 0000000C C=CODE S=.text G=(none) M=System.UITypes ACBP=A9
0001:0000CF30 00000284 C=CODE S=.text G=(none) M=Winapi.Windows ACBP=A9
0001:0000D1B4 00000338 C=CODE S=.text G=(none) M=System.SysConst ACBP=A9
0001:0000D4EC 00000024 C=CODE S=.text G=(none) M=Winapi.PsAPI ACBP=A9
0001:0000D510 00000098 C=CODE S=.text G=(none) M=System.RTLConsts ACBP=A9
0001:0000D5A8 00005D88 C=CODE S=.text G=(none) M=System.Character ACBP=A9
0001:00013330 00000278 C=CODE S=.text G=(none) M=System.Internal.ExcUtils ACBP=A9
0001:000135A8 0000B6B4 C=CODE S=.text G=(none) M=System.SysUtils ACBP=A9
0001:0001EC5C 00000958 C=CODE S=.text G=(none) M=System.VarUtils ACBP=A9
0001:0001F5B4 0000927C C=CODE S=.text G=(none) M=System.Variants ACBP=A9
0001:00028830 00001D58 C=CODE S=.text G=(none) M=Test ACBP=A9
0002:00000000 000000E0 C=ICODE S=.itext G=(none) M=System ACBP=A9
0002:000000E0 00000008 C=ICODE S=.itext G=(none) M=SysInit ACBP=A9
0002:000000E8 00000014 C=ICODE S=.itext G=(none) M=System.UITypes ACBP=A9
0002:000000FC 00000018 C=ICODE S=.itext G=(none) M=Winapi.Windows ACBP=A9
0002:00000114 00000008 C=ICODE S=.itext G=(none) M=Winapi.PsAPI ACBP=A9
0002:0000011C 00000010 C=ICODE S=.itext G=(none) M=System.Character ACBP=A9
0002:0000012C 00000020 C=ICODE S=.itext G=(none) M=System.Internal.ExcUtils ACBP=A9
0002:0000014C 00000418 C=ICODE S=.itext G=(none) M=System.SysUtils ACBP=A9
0002:00000564 00000010 C=ICODE S=.itext G=(none) M=System.VarUtils ACBP=A9
0002:00000574 000000B8 C=ICODE S=.itext G=(none) M=System.Variants ACBP=A9
0002:0000062C 00000140 C=ICODE S=.itext G=(none) M=Test ACBP=A9
0003:00000000 00000C04 C=DATA S=.data G=DGROUP M=System ACBP=A9
0003:00000C04 0000007C C=DATA S=.data G=DGROUP M=SysInit ACBP=A9
0003:00000C80 0000000C C=DATA S=.data G=DGROUP M=Winapi.Windows ACBP=A9
0003:00000C8C 00000124 C=DATA S=.data G=DGROUP M=System.Internal.ExcUtils ACBP=A9
0003:00000DB0 00000790 C=DATA S=.data G=DGROUP M=System.SysUtils ACBP=A9
0003:00001540 00000008 C=DATA S=.data G=DGROUP M=System.VarUtils ACBP=A9
0003:00001548 00000138 C=DATA S=.data G=DGROUP M=System.Variants ACBP=A9
0004:00000000 00003628 C=BSS S=.bss G=DGROUP M=System ACBP=A9
0004:00003628 00000020 C=BSS S=.bss G=DGROUP M=SysInit ACBP=A9
0004:00003648 00000008 C=BSS S=.bss G=DGROUP M=System.UITypes ACBP=A9
0004:00003650 00000008 C=BSS S=.bss G=DGROUP M=Winapi.Windows ACBP=A9
0004:00003658 00000008 C=BSS S=.bss G=DGROUP M=Winapi.PsAPI ACBP=A9
0004:00003660 00000024 C=BSS S=.bss G=DGROUP M=System.Character ACBP=A9
0004:00003684 00000004 C=BSS S=.bss G=DGROUP M=System.Internal.ExcUtils ACBP=A9
0004:00003688 0000224C C=BSS S=.bss G=DGROUP M=System.SysUtils ACBP=A9
0004:000058D4 0000005C C=BSS S=.bss G=DGROUP M=System.VarUtils ACBP=A9
0004:00005930 0000001C C=BSS S=.bss G=DGROUP M=System.Variants ACBP=A9
0004:0000594C 00000024 C=BSS S=.bss G=DGROUP M=Test ACBP=A9
0005:00000000 00000010 C=TLS S=.tls G=(none) M=System ACBP=A9
0005:00000010 00000004 C=TLS S=.tls G=(none) M=System.SysUtils ACBP=A9
5 апр 21, 16:40    [22304640]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6314
Kazantsev Alexey
kealon(Ruslan)
пишут...
"просто подцепить SysUtils" на новых дельфях это сразу больше мегабайта

Враньё. Релизные размеры сильно меньше.
пардон, System.Classes - >1.5 мб на x64
5 апр 21, 20:48    [22304785]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
bk0010
Member

Откуда:
Сообщений: 5058
(Старческим голосом) Помницца в молодости был еще такой KOL, созданный как раз для минимизации объемов файлов. Посмотрите, что с ним сталось за эти годы, может это то, что вы ищете.
5 апр 21, 21:28    [22304797]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2520
А я ещё помню уйнёй маялся, чтоб на 2010 или XE (не помню точно) пустой exe-шник 7кб получался. Вот делать нехера было...
5 апр 21, 23:05    [22304833]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6314
white_nigger,

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

выбор как таковой практически отсутствует: либо всё вместе, либо сам пиши
не надо кривой аналогии про комплексный обед, с него что-то можно и не съесть
5 апр 21, 23:47    [22304845]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить