mingw-gcc: näin teet DLL:n

mingw-gcc_ohjelmointi

Laita tällainen koodi lähdekoodisi alkuun:

#include

// modulename: sourcefilename.c

typedef unsigned long uint32;
typedef unsigned long long uint64;

/*

To compile:
gcc -c numbersd.c

To link:
gcc -static -shared -o numbersd.dll numbersd.o

*/

Nyt, kun vielä jostain selviäisi, miten mingw-gcc:lle voisi kertoa, että esim: IMAGEBASE = 0x60000000

Silloin, kun tehdään Windows -exe,
niin yleensä IMAGEBASE = 0x00400000.

Mutta, kun tehdään DLL, niin ensinnäkin on syytä välttää tuota osoitetta IMAGEBASE = 0x00400000, koska ko. osoite ON JO exe:n varaama, jajos DLL:llä on sama oletusosoite, se joudutaan relokatoimaan ladattaessa, mikä hieman hidastaa lataamista, ja saattaa myös johtaa lisääntyneeseen RAM -muistin kulutukseen tilanteessa, jossa useampi kuin 1 ohjelma käyttää samaa DLL:ää.

Toiseksi, jos sama EXE käyttää useita DLL:iä, niin kunkin DLL:n IMAGEBASE tulee erota toisistaan; muuten joudutaan myös relokatoimaan 1 DLL, kun jokin toinen DLL on jo varannut osoitteen itselleen.

1

162

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • mingw_gcc_tester

      Toimisivatkohan nämä ohjeet:

      -Wl,--disable-auto-image-base -Wl,--image-base=0xC0010000

      Options given later on the command line override earlier ones.

      The ones in the specs file will be the first on the command line to the linker so they're overridable.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tulipalossa henkilövahinkoja, itsenäisyyspäivä alkoi huonosti, poliisi tiedottaa lisää

      Savonlinna https://www.como.fi/uutiset/savonlinna-henkilovahinkoja-tulipalossa-poliisi-tiedottaa-lisaa/
      Savonlinna
      161
      8839
    2. Ennen ei ollut persuja ja työttömyyttä, lääkäriinkin pääsi

      Ennen oli kaikilla töitä Kauppiaille kelpasi kun saivat voittoa Yritystukia ei ollut Lääkäriin pääsi kaikki haluklaat Nu
      Maailman menoa
      104
      4082
    3. Millaista läheisyyttä

      Toivoisit ikävästi kohteesi kanssa?
      Ikävä
      114
      3922
    4. 55
      3383
    5. Antifasismi - mitä se on?

      Se on äärivasemmistolaista anarkistista toimintaa joka käyttää fasisminvastaisuutta keppihevosena oikeuttaakseen toimint
      Maailman menoa
      42
      2724
    6. Somali ei kätellyt Stubbia Linnan juhlissa

      Miksei somali osaa noudattaa hyviä käytöstapoja. https://www.iltalehti.fi/viihdeuutiset/a/563a3dea-fa3f-41f3-b64f-406d2
      Maailman menoa
      388
      2007
    7. Heräsin taas ikävään

      Ja aivan valtavaan haluun. Tahdon sinua R. ❤️
      Ikävä
      56
      1921
    8. Yliajo Heinolassa

      Mikä ihme ihmisiä vaivaa nykyään? Vähän ensin kähistellään nakkikioskilla ja sen jälkeen kostoksi murhataan autolla! Voi
      Heinola
      45
      1881
    9. Kuka on menehtynyt?

      https://yle.fi/a/74-20198293 Kuulemani mukaan ryyppyporukka ollut hapualla ja kuolemanenkeli (F.G) eli mies jonka seuras
      Kankaanpää
      11
      1871
    10. Kauhea ikävä iski

      Mietin vain, mitä olet juuri nyt tekemässä. Mietin myös, välittyykö se sinulle, kun olet koko ajan mielessäni, tunnetko
      Ikävä
      20
      1531
    Aihe