fbpx
  1. Renata
  2. S.O.S. Computer
  3. Giovedì, 27 Luglio 2006
  4.  Subscribe via email
Ciao a tutti,
per un progetto universitario abbiamo bisogno di utilizzare delle librerie! Abbiamo provato di tutto...
Le abbaimo messe in tutte le cartelle possibili ed immaginabili. Siamo persino arrivate a creare una libreria personale con le funzioni da richiamare... Ma niente....
Qualcuno sa darci qualche consiglio...
Vi prego, siamo abbastanza disperate :cry:

Grazie Claudia e Oriana!!!
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
se non ricordo male si doveva inserire la funzione [code type="markup"]include "mialibreria"[/code] nel codice del progetto e il compilatore cercava la libreria da collegare.
questo sicuramente lo avrete già fatto.
ora consulto la mia guida e vi farò sapere oppure guardate qui http://programmazione.html.it/guide/lez ... pilazione/
[/url]
Comment
There are no comments made yet.
  1. more than a month ago
  2. S.O.S. Computer
  3. # 1
Accepted Answer Pending Moderation
ecco cosa ho trovato su un mio manuale, spero vi sia di aiuto:

[code type="markup"]LA DIRETTIVA #include

la direttiva #include chiede al compilatore di
leggere un altro file sorgente oltre a quello che
contiene la direttiva #include. il nome del file
sorgente deve essere racchiuso fra doppi apici o
fra parentesi angolari. per esempio:
#include "stdio.h"
#include <stdio.h>
chiedono al compilatore di leggere e compilare il
file header delle funzioni di libreria dedicate
ai file.
[...]
l'inclusione del nome del file fra doppi apici o
fra parentesi angolari determina il modo in cui
deve essere condotta la ricerca del file specificato.
se il nome del file è racchiuso fra parentesi angolari,
il file viene ricercato in un modo definito dal
creatore del compilatore. spesso la ricerca viene
eseguita in alcune speciali directory dedicate ai
file di inclusione. se il nome del file è racchiuso
fra doppi apici, il file viene ricercato utilizzando
un altro metodo definito dall'implementazione. per
molti compilatori, i doppi apici consentono di
eseguire la ricerca all'interno della directory
corrente. se il file non viene trovato, la ricerca
viene ripetuta come se il file fosse racchiuso fra
parentesi angolari.
[...]
(in C++)un header è un identificatore standard che
non fa riferimento necessariamente al nome di un file.
pertanto un header è semplicemente un'astrazione che
garantisce che nel programma vengano incluse tutte
le informazioni richieste.



I NUOVI HEADER C++

come si sa, quando si usa una funzione di libreria di
un programma C, si deve includere il relativo header.
tale operazione viene eseguita tramite l'istruzione
#include. per esempio, in C, per includere l'header
per le funzioni di I/O si deve utilizzare la seguente istruzione:
#include <stdio.h>
qui, stdio.h è il nome del file utilizzato dalle funzioni
di I/O e l'istruzione precedente provoca l'inclusione
fisica di tale file nel programma. in pratica l'istruzione
#include normalmente include un file.
[...]
ma lo standard per il C++ ha creato un nuovo tipo di header
utilizzato dalla libreria standard C++. i nuovi header C++
non specificano nomi di file ma identificatori standard
che non necessariamente sono file. i nuovi header C++ sono
un'astrazione che garantisce semplicemente la dichiarazione
dei prototipi e delle definizioni richiesti dalla libreria
C++. poichè i nuovi header non sono file, non hanno
l'estensione .h.[/code]
Comment
There are no comments made yet.
  1. more than a month ago
  2. S.O.S. Computer
  3. # 2
Accepted Answer Pending Moderation
Ciao a tutti,
Se usate C++ e cercate di caricare librerie C mi sà che avrete dei problemini....c'è un po' di differenza con il C per caricare le classi, poichè esiste una prassi denominata "name mangling". Le funzioni che non sono "static" vengono convertite in simboli nel file binario, mentre in C il nome della funzione ed il relativo simbolo corrispondono, poichè qui è palese che due funzioni non static abbiano nomi differenti.
In ogni libreria o file oggetto C++ , le funzioni non-static vengono rappresentate da simboli, i quali sono delle stringhe che identificano unicamente la libreria, piuttosto che la funzione o il file oggetto. Mentre in C simbolo e nome della funzione sono uguali (dal momento che due funzioni non statiche possono solo avere nomi distinti), in C++ potete avere una stessa funzione dichiarata più volte con differenti argomenti (overloading), questo però impedisce di utilizzare il solo nome della funzione per rintracciarla. Il "name mangling" modifica perciò il descrittore inserendo dati estesi sulla funzione, perciò la libreria stessa non potrà essere compilata se non in C++. Potreste avere problemi addirittura con compilatori differenti!
La soluzione stà nell'usare la direttiva "Extern", la quale indica al compilatore di attuare il binding dell'oggetto: all'interno dell'oggetto possono esservi sia oggetti (a.e. funzioni) in C che in C++, non importa.
Un piccolo esempio:
extern "C" {
extern int Procedura;
extern void Funzione();
}

Spero di essere stato di aiuto,
Saluti
Federico


Ciao a tutti,
per un progetto universitario abbiamo bisogno di utilizzare delle librerie! Abbiamo provato di tutto...
Le abbaimo messe in tutte le cartelle possibili ed immaginabili. Siamo persino arrivate a creare una libreria personale con le funzioni da richiamare... Ma niente....
Qualcuno sa darci qualche consiglio...
Vi prego, siamo abbastanza disperate :cry:

Grazie Claudia e Oriana!!!
Comment
There are no comments made yet.
  1. more than a month ago
  2. S.O.S. Computer
  3. # 3
  • Page :
  • 1


There are no replies made for this post yet.
Be one of the first to reply to this post!