Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136

    Problema con l'inclusione delle librerie

    ho due classi che includo alcune librerie.
    se le compilo singolarmente non mi da nessun errore.

    se buildo tutto assieme mi da errori : already defined in Main.obj

    come faccio a dire che se una libreria è gia stata caricata allora non deve ricaricarla ?


    Grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Mostra il codice ... suppongo che parli di file include (.h) non di librerie ...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136
    scusa, hai ragione.

    sono file .h, mi sono sbagliato.


    per l'esattezza ho visto che è un solo file header che mi da errore se lo includo in enrtambe le classi.

    all'interno del file definisco delle funzioni.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ti avevod detto ... mostra il codice ...

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136
    main :

    codice:
    include "def_function.h"
    include "example.h"


    class example :

    codice:
    include "def_function.h"
    include "example.h"

    def_function.h :

    codice:
    typedef int (WINAPI* LP_Open)	(arg1,arg2);
    typedef int (WINAPI* LP_Close)	(arg1)	;
    
    LP_Open  Open;
    LP_Close  Close;
    la typedef posso farla quanto voglio, ma non posso definire due volte i puntatori..

    non c'è una specie di ifndef per gli include ?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Questo deve essere def_function.h :

    codice:
    #ifndef DEF_FUNCTION_H
    #define DEF_FUNCTION_H
    
    typedef int (WINAPI* LP_Open)	(arg1,arg2);
    typedef int (WINAPI* LP_Close)	(arg1)	;
    
    LP_Open  Open;
    LP_Close  Close;
    
    #endif
    e in maniera simile dovrebbe essere example.h (che non hai mostrato ...)

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Il linguaggio anche nel titolo, come da Regolamento: questo l'ho corretto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136
    ho provato a fare come mi hai detto
    codice:
    #ifndef DEF_FUNCTION_H
    #define DEF_FUNCTION_H
    
    typedef int (WINAPI* LP_Open)	(arg1,arg2);
    typedef int (WINAPI* LP_Close)	(arg1)	;
    
    LP_Open  Open;
    LP_Close  Close;
    
    #endif
    ma non funziona. continua a darmi lo stesso errore: gia definito in main.obj

    non gli va bene la definizione dei puntatori.. l'altro file .h non mi da nessun prob, per quello non ho postato il codice

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ti ho detto di farlo anche per la example.h ...

    E poi, l'errore di cosa parla esattamente ...?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136
    in example.h c'è gia #ifndef (etc.)

    l'errore che mi da è :

    codice:
    Example.obj : error LNK2005: "int (__stdcall* Open)(struct arg1 *,arg2 *)" ?Open@@3P6GHPAUHWND__@@PAKPAD222PAG@ZA) already defined in Main.obj

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.