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

93

    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. Pupuhuhdasta löytyi lähes sadan kilon miljoonalasti huumeita

      Pupuhuhdasta löytyi lähes sadan kilon miljoonalasti huumeita – neljä Jyväskylän Outlaws MC:n jäsentä vangittu: "Määrät p
      Jyväskylä
      56
      1896
    2. Persut petti kannattajansa, totaalisesti !

      Peraujen fundamentalisteille, vaihtkaa saittia. Muille, näin sen näimme. On helppo luvata kehareille, eikä ne ymmärrä,
      Maailman menoa
      48
      1648
    3. Ei luottoa lakko maahan

      Patria menetti sovitun ksupan.
      Suomen Keskusta
      52
      1574
    4. Nähtäiskö ylihuomenna taas siellä missä viimeksikin?

      Otetaan ruokaöljyä, banaaneita ja tuorekurkkuja sinne messiin. Tehdään taas sitä meidän salakivaa.
      Ikävä
      5
      1527
    5. Sinäkö se olit...

      Vai olitko? Jostain kumman syystä katse venyi.. Ajelin sitten miten sattuu ja sanoin ääneen siinä se nyt meni😅😅... Lis
      Ikävä
      6
      1495
    6. Housuvaippojen käyttö Suomi vs Ulkomaat

      Suomessa housuvaippoja aletaan käyttämään vauvoilla heti, kun ne alkavat ryömiä. Tuntuu, että ulkomailla housuvaippoihin
      Vaipat
      6
      1415
    7. Hyvää yötä ja kauniita unia!

      Täytyy alkaa taas nukkumaan, että jaksaa taas tämän päivän haasteet. Aikainen tipu madon löytää, vai miten se ärsyttävä
      Tunteet
      8
      1306
    8. Lepakot ja lepakkopönttö

      Ajattelin tehdä lepakkopöntön. Tietääkö joku ovatko lepakot talvella lepakkopöntössä ´vai jossain muualla nukkumassa ta
      12
      1281
    9. Revi siitä ja revi siitä

      Enkä revi, ei kiinnosta hevon vittua teidän asiat ja elämä. Revi itte vaan sitä emborullaas istuessas Aamupaskalla
      Varkaus
      4
      1163
    10. Kello on puoliyö - aika lopettaa netin käyttö tältä päivältä

      Kello on 12, on aika laittaa luurit pöydälle ja sallia yörauha kaupungin asukkaille ja työntekijöille. It is past midni
      Hämeenlinna
      4
      1138
    Aihe