Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] Creare librerai matematica

    Devo creare una libreria matematica di nome mymath, con funzioni di ogni tipo.

    Ho creato con Devcpp un nuovo progetto/libreria dll.

    Ora come faccio a creare una libreria? Quali sono i comandi?

    Ho trovato sul sito di riferimento qualcosa del genere:

    #if defined( WIN32 || WIN64)
    #define MYMATH_EXPORT __declspec(dllexport)
    #define MYMATH_IMPORT __declspec(dllimport)
    #else
    #if defined(__linux__)
    #define MYMATH_EXPORT
    #define MYMATH_IMPORT
    #else
    #error - unsupported platform.
    #endif
    #endif



    #undef MYMATH_API
    #if defined(MYMATH_STATIC_LIB )
    #define MYMATH_API
    #else
    #if defined(MYMATH_DLL_BUILD )
    #define MYMATH_API MYMATH_EXPORT
    #else
    #define MYMATH_API MYMATH_IMPORT
    #endif
    #endif


    Cosa vuol dire?

  2. #2
    Procediamo con ordine...

    1) Che tipo di libreria devi creare: DLL o altro?
    2) Le funzioni matematiche dovrai implementarle tu a mano?
    3) Non hai specificato il "sito di riferimento", qual è?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    1) dovrei creare sia una lib statica che una dinamica
    2) si, le funzioni le scriverò io
    3) è un sito del mio docente di Laboratorio di Informatica

  4. #4

    Re: [C++] Creare librerai matematica

    Cosa vuol dire?
    quando crei una libreria statica o dinamica in unix non devi dare specificazioni alle funzioni che vuoi esportare o importare, queste vengono esportate o importate naturalmente. L'unica cosa che bisogna fare e dire al compilatore e al linker che si desidera creare una libreria, statica o dinamica, o un eseguibile (in questo caso naturalmente occorrerà che ci sia la funzione main).

    In windows invece bisogna esplicitare le funzioni che si vogliono importare o esportare e questo si fa con i modificatori __declspec( dllexport ) e __declspec( dllimport ).
    Siccome di norma il file include è uno solo si utilizza una direttiva del preprocessore per inserire nel contesto il giusto comando.

    Una tua funzione da importare/esportare potrebbe essere definita come

    MYMATH_EXPORT int mia_somma_strana (int a, int b){
    return (a - b);
    }

    e MYMATH_EXPORT nel caso di windows risulterà __declspec( dllexport ) e nel caso di unix non comparirà del tutto.
    Hai quindi creato codice multipiattaforma.

    ciao
    sergio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.