Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    [C] - Problemi di Inclusione...

    Non ho mai avuto questo tipo di problema...

    Vi spiego, ho creato un progetto, in questo ci vari moduli:

    Motore.h

    che contiene le dichiarazioni di tutte le strutture dati utilizzate nel programma.

    Poi ho creato 3 moduli: Save, Load e Utility, ognuno dei quali richiama il suo header: esempio in Save.c faccio #include "Save.h" e così via

    In Ogni header file includo #include "Motore.h"

    Ora Ho decisco di creare un nuovo modulo Cerca.c -> Cerca.h

    Se provo a utilizzare una void che ho dichiarato in Utility, mi dice che la funzione non è definita... Anche in Cerca.c ho fatto #include "Cerca.h", d in Cerca.h, #include "Motore.h"

    Spero di essermi spiegato...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    No ...

  3. #3
    Altra cosa: Nonostante nel Motore.h ho incluso tutte le librerie che mi servono tipo string.h in Cerca.c mi dice getch() undeclared.... come è possibile???

  4. #4
    allora ho un progetto in Dev.


    1) Motore.h contenente tutte le dichiarazioni delle strutture dati, e le librerie che uso
    2) main, inutile che commento.
    3) Load.c e Load.h, in Load.h richiamo Motore.h ed inserisco le firme delle funzioni utilizzate nel .c

    così per tutti gli altri files...

    Solo che se voglio utilizzare una funzione dichiarata in un altro file il compilatore se ne frega, e mi dice che le funzioni non sono dichiarate...

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Fai un esempio ...

  6. #6
    Motore.h

    Codice PHP:

    /* Inclusione delle librerie utilizzate dai vari moduli */
    #include <stdio.h>  /* Operazioni di Input/Output */
    #include <stdlib.h> /* Definizioni della Libreria Standard */
    #include <malloc.h> /* Allocazione Dinamica della memoria */
    #include <string.h> /* Operazioni sulle stringhe */
    #include <math.h>

    typedef struct StringList
    {

        
    char Stringa[512];
        
    struct StringList *Next;

    XML

    Utility.c
    Codice PHP:

    #include "Utility.h"

    void Warning
    (
       
    char *Message
    )
    {

       
    system"CLS" );
       
    printf"\n\n %s \n\n " Message );
       
    system"PAUSE" );
       
    system"CLS" );


    Utility.h

    Codice PHP:

    #include "Utility.h"

    void Warningchar *Message ); 
    Cerca.c

    Codice PHP:

    #include "Cerca.h"

    int Cerca

       
    XML *Lista
       
    char *str 
    )
    {
         ...............
    ..................
    .................. 
    Non scrivo le operazioni altrimenti sarebbe troppo lungo

       
    ---------  
      else
         
    Warning"ERRORE, non trovato");


    Cerca.h

    Codice PHP:

    #include "Motore.h"

    int CercaXML *Lista,  char *str ); 
    Spero che vada meglio, cmq in sostanza mi dice che Warning non è definita che come questa tutte le funzioni che richiamo...in cerca.c

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    In Cerca.c devi aggiungere

    #include "Utility.h"

  8. #8
    ci ho provato mi dice 36
    ......---.....\Motore.h previous definition of `struct StringList'

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Per ogni file header aggiungi delle linee per garantire una inclusione unica ... ad esempio per Motore.h scrivi

    codice:
    #ifndef MOTORE_H
    #define MOTORE_H
    
    /* Inclusione delle librerie utilizzate dai vari moduli */ 
    #include <stdio.h>  /* Operazioni di Input/Output */ 
    #include <stdlib.h> /* Definizioni della Libreria Standard */ 
    #include <malloc.h> /* Allocazione Dinamica della memoria */ 
    #include <string.h> /* Operazioni sulle stringhe */ 
    #include <math.h> 
    
    typedef struct StringList 
    { 
    
        char Stringa[512]; 
        struct StringList *Next; 
    
    } XML;
    
    #endif

  10. #10
    fatto per ogni header file...

    adesso mi dice

    [Linker Error] undefined reference to `Warning(char *Message)'
    ovviamente lo stesso messaggio anche per le altre funzioni "condivise" dai moduli...

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.