Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120

    inclusione di funzioni esterne

    Sto facendo un programma piuttosto complesso in c++, più che altro ho funzioni che chiamano un sacco di funzioni ausiliarie, pensavo quindi di fare un cpp esterno con queste funzioni.
    Ho fatto un header con le dichiarazioni delle funzioni: tmat.h
    solo così funziona benissimo.
    Poi ho provato a spostare le funzioni definite in tmat.h nel file tmat.cpp, in tmat.h ho solo le dichiarazioni come "extern" e in tmat.cpp includo tmat.h e ho le funzioni.
    Solo che quando compilo il main mi da errore di funzione esterna non trovata:
    error LNK2019: unresolved external symbol _tmat_init referenced in function _data_init

    Naturalmente includo il mio header sia nel cpp col main sia in quello con le funzioni, che dimentico? :master:
    Grassssieeee

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    ...pensavo quindi di fare un cpp esterno con queste funzioni...

    devi fare non un cpp esterno ma un .h da incudere nel cpp

    ciao
    Oki.lib Libreria per creare il proprio Engine del sound nei propri progetti
    http://www.twork.it/public/oki/guestbook.asp

    Sistemi di Gestione Studio e Sviluppo per giochi a pronostici
    http://www.twork.it/programmi/programmi.html

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120
    scusa ma io ho fatto l'h con la definizione delle funzioni e il cpp con le funzioni vere e proprie, se faccio solo l'h lì non posso scrivere le funzioni ..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da yaya
    scusa ma io ho fatto l'h con la definizione delle funzioni e il cpp con le funzioni vere e proprie
    E allora è giusto e deve funzionare.
    Naturalmente il cpp con le funzioni l'hai aggiunto al tuo "progetto" in modo che venga compilato, vero???
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    se hai dichiarato degli extern nell'.h devi ridichiararli nel cpp tipo

    extern int a // .h
    int a //.cpp
    Oki.lib Libreria per creare il proprio Engine del sound nei propri progetti
    http://www.twork.it/public/oki/guestbook.asp

    Sistemi di Gestione Studio e Sviluppo per giochi a pronostici
    http://www.twork.it/programmi/programmi.html

  6. #6
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Originariamente inviato da scancode
    se hai dichiarato degli extern nell'.h devi ridichiararli nel cpp tipo

    extern int a // .h
    int a //.cpp
    Non dovrebbe essere il contrario?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    Hai mio.cpp e mio.h dove in mio.cpp vedi e sono trovate solo variabili della classe mio.

    Poi hai il main.cpp che include mio.h in main.cpp puoi vedere le var di mio della sua classe puntandole con ->. Ma se devi far vedere alle funzioni e routine in mio.cpp una variabile di main.cpp la devi dichiarare globalmente come extern in mio.h e ridichiararla come int a; in main.cpp allora la variabile a può essere vista in tutto il mio.cpp
    Oki.lib Libreria per creare il proprio Engine del sound nei propri progetti
    http://www.twork.it/public/oki/guestbook.asp

    Sistemi di Gestione Studio e Sviluppo per giochi a pronostici
    http://www.twork.it/programmi/programmi.html

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120
    Originariamente inviato da andbin
    E allora è giusto e deve funzionare.
    Naturalmente il cpp con le funzioni l'hai aggiunto al tuo "progetto" in modo che venga compilato, vero???
    l'ho aggiunto e basta... devo fare qualcos'altro?
    dovrei compilarlo sia su visual studio che sotto linux...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.