eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingArchitektura aplikacji - powody wyłączania dll z exeRe: Architektura aplikacji - powody wyłączania dll z exe
  • X-Received: by 10.31.161.87 with SMTP id k84mr492967vke.10.1512176536775; Fri, 01 Dec
    2017 17:02:16 -0800 (PST)
    X-Received: by 10.31.161.87 with SMTP id k84mr492967vke.10.1512176536775; Fri, 01 Dec
    2017 17:02:16 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!peer02.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-medi
    a.com!news.highwinds-media.com!m31no83746qtf.0!news-out.google.com!t48ni257qtc.
    1!nntp.google.com!g35no83743qtk.1!postnews.google.com!glegroupsg2000goo.googleg
    roups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 1 Dec 2017 17:02:16 -0800 (PST)
    In-Reply-To: <2...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=37.47.16.111;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 37.47.16.111
    References: <0...@g...com>
    <oukn36$l7m$1@node2.news.atman.pl>
    <4...@g...com>
    <oun2nc$r4t$1@node2.news.atman.pl>
    <8...@g...com>
    <ouviso$22u$1@node1.news.atman.pl>
    <9...@g...com>
    <1...@g...com>
    <e...@g...com>
    <ovgk2k$kc2$1@gioia.aioe.org>
    <5...@g...com>
    <ovnil0$ubp$1@gioia.aioe.org>
    <4...@g...com>
    <ovq7de$f0m$1@node2.news.atman.pl>
    <c...@g...com>
    <izm4rewsde4p$.dlg@tyczka.com>
    <2...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <d...@g...com>
    Subject: Re: Architektura aplikacji - powody wyłączania dll z exe
    From: fir <p...@g...com>
    Injection-Date: Sat, 02 Dec 2017 01:02:16 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    X-Received-Body-CRC: 588985468
    X-Received-Bytes: 4931
    Xref: news-archive.icm.edu.pl pl.comp.programming:211815
    [ ukryj nagłówki ]

    W dniu sobota, 2 grudnia 2017 00:11:12 UTC+1 użytkownik M.M. napisał:
    > On Friday, December 1, 2017 at 8:14:21 PM UTC+1, Roman Tyczka wrote:
    > > On Fri, 1 Dec 2017 04:21:11 -0800 (PST), M.M. wrote:
    > >
    > > > Niepokoi mnie tylko jedno. W językach takich jak C, C++ , Pascal i w
    > > > kilku innych, można zrobić:
    > > >
    > > > var = foo() // trudna do oszacowana wartość
    > > > var(); // wywołanie funkcji
    > > >
    > > > Wiem że taka praktyka programistyczna jest bardzo zła, ale formalnie
    > > > poprawna. Jak więc linkier / kompilator może ustalić, że pewne funkcje
    > > > z libów można pominąć?
    > >
    > > Przecież robiąc to przypisanie dajesz znać, że tego używasz, zatem zostaje
    > > nieusunięte, co tu niejasnego?
    > >
    >
    > Ściślej, kompil000000ator dostaje informacje o nieprzewidywalnych wywołaniach w
    > momencie gdy jakaś zmienna jest rzutowana na typ wskaźnika na funkcję.
    > Jak wtedy kompilator powinien się zachować? Czy powinien wcielić absolutnie
    > całego liba?
    >

    widze ze ciezka niekumacja tu sie odwala (co jest troche smutne)

    to co robi kompilator to poprostu buduje sekcje importow (ktora z tego co wiem nie
    jest niczym innym co lista stringow) z symboli ktore
    w zrodle sa oznaczone jako symbole
    do importu

    (z tego z kolei co wiem w zrodle c
    jako symbole do importu sa oznaczane te symbole ktore nie sa
    w nim zdefiniowane) (tj w przypadku dllek trzeba ztcw jawnie naisac
    __declspec(dllimport) ale w wypadku
    linlkowanie ststycznego systarczy
    z tcw jedynie zadeklarowac symbol
    bez definicji (nie pamietam czy trzeba dodawac slowo extern ale oip chyba raczej nie)

    jesli var bedzie zadeklarowane jako taki symbol do importu np

    void var(int);

    to linker zrobi z tego symbol do importu, przypisanie nie ma tu ztcw nic do rzeczy, z
    tego co kojarze takie przypisanie chyba raczej powinno wyrzicic blad bo to var chyba
    nie jest tak do konca zmienną
    (jest ew adresem funkcji w pamieci
    wiec niby mozna tam cos wpisac, wiec moze i powinno byc dozwolone choc i tak wywola
    segfault)

    powtarzajac linker (wlasciwie
    powinien to byc kompilator ale
    ze wzgledu na to ze jak sie buduje sekcje importu symbol trzeba podpiac pod konkretna
    nazwe dllki w ktorej ma byc on szukany i taki kompilator musi poszukac w jakiej
    dllce ten symbol moze byc wiec robi nieststy jakby za linker) bedzie importowal
    jedynie to co jest zadeklarowane jako symbole do importu

    (przy okazji jest to doba ilustracja dlaczego czy tez na jakiej zasadzie "asembler"
    czytez
    "niskopoziomowa orientacja" przydaje sie by zrozumiec jasno
    pewne rzeczy)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 02.12.17 08:59 AK
  • 02.12.17 09:15 AK
  • 02.12.17 09:24 AK
  • 02.12.17 12:15 fir
  • 02.12.17 12:43 fir
  • 02.12.17 16:12 AK
  • 02.12.17 16:15 AK
  • 02.12.17 16:26 fir
  • 12.09.18 19:55 s...@g...com

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: